一、4種集合類型java
List:有序可重複集合。數組
Queue:隊列集合。多線程
Set:無序不可重複集合。框架
-------------------------------函數
Map:關係映射集合。spa
二、全部的集合類都位於java.util包下。java.util.concurrent下在java5後增長了多線程支持的集合類。線程
三、數組中的元素能夠是基本數據類型的值,也能夠是對象。而集合中只能保存對象。code
四、集合的派生關係對象
Collection體系:LinkedList最特殊,有兩個父接口。queue與List相似。blog
Map體系:
Map保存的每項數據都是key-value對。
總結:因爲queue相似於List,因此集合大致能夠分爲3類,即List、Map、Set。訪問List集合中的元素,能夠經過元素的索引來訪問;若是訪問Map中的元素,能夠根據每項元素的key來訪問其value;若是訪問Set中的元素,只能經過元素自己(這也是Set不容許元素重複的緣由)。
五、Collection接口,是Set、Queue、List接口的父接口。
其定義的方法有:
1》boolean add(Object o):向集合中添加一個元素。集合對象被添加操做改變了,則返回true。
2》boolean addAll(Collection c):將集合c中的全部元素添加到指定的集合中。集合對象被添加操做改變了,則返回true。
3》void clear():清除集合裏的全部元素,將集合長度變爲0。
4》void contains(Object o):返回集合中是否包含指定元素。
5》boolean containsAll(Collection c):返回集合裏是否包含集合c裏的全部元素。
6》boolean isEmpty():返回集合是否爲空。當集合長度爲0時返回true,不然返回false。
7》Iterator iterator():返回一個Iterator對象,用於遍歷集合裏的元素。
8》boolean remove(Objeact o):刪除集合中的指定元素o,當集合中包含了一個或者多個元素o時,該方法只刪除第一個符合條件的元素,該方法將返回true。
9》boolean removeAll(Collection c):從集合中刪除集合c裏包含的全部元素(至關於調用該方法的集合減集合c),若是刪除了一個或者一個以上的元素,則該方法返回true。
10》boolean retainAll(Collection c):從集合中刪除集合c裏不包含的元素(至關於把調用該方法的集合變成該集合和集合c的交集),若是該操做改變了調用該方法的集合,則該方法返回true。
11》int size():該方法返回集合裏元素的個數。
12》Object[] toArray():該方法把集合轉換成數據,全部的集合元素變成對應的數據元素。
六、Iterator接口也是Java集合框架的成員,Iterator主要用於遍歷(迭代)Collection集合中的元素,Iterator對象也被稱爲迭代器。其定義了以下4個方法:
1》bolean hasNext():若是被迭代的集合還有元素沒有被迭代完,則返回true。
2》Object next():返回集合裏的下一個元素。
3》void remove():刪除集合裏上一次next方法返回的元素。
4》void forEachRemaining(Consumer action):Java 8爲Iterator新增的默認方法,該方法能夠使用Lambda表達式遍歷集合。
使用Iterator對集合元素進行迭代時,Iterator並非把集合元素自己傳給了迭代變量,而是把集合元素的值傳遞給了迭代變量,即修改迭代變量的值對集合元素自己沒有任何影響。經過Iterator的remove()方法刪除上一次next()方法返回的集合元素。
七、使用foreach循環遍歷集合元素
for(String book:books){ System.out.println(book); }
使用Iterator對集合元素進行迭代時,Iterator並非把集合元素自己傳給了迭代變量,而是把集合元素的值傳遞給了迭代變量,修改迭代變量值是無心義的。迭代過程中不能修改集合中的元素,好比調用集合的remove()方法。
八、Java 8新增的Predicate操做集合
Java 8爲Collection集合新增一個removeIf(Predicate filter)方法,該方法將會批量刪除符合filter條件的全部元素。Predicate也是函數式接口。
Collection books=new HashSet(); ... books.removeIf(ele->((String)ele).length()<10);
九、Java 8新增的Stream操做集合
Java 8還新增了Stream、IntStream、LongStream、DoubleStream等流式API。