一.概述

Collection是集合架構的根接口.不同的集合具有不同的特性,比如有的集合可以有重複元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作為集合的根接口,它規範定義了集合的通用方法,一個集合我們可以看作一個在記憶體中的小型資料庫,而資料庫的常用操作無外乎"增删改查",Collection中的方法也大體是這些類型操作.
此外Colletion的所有通用實作類都會有一個轉換器構造方法,它接收一個Collection類型參數,這樣可以以另一個Collection類型集合中元素來初始化自己,也相當于實作了集合類型的互相轉換.
修飾符和傳回值
方法名
描述
添加功能
boolean
add(E)
向集合添加一個元素,集合元素數沒有變化的話傳回false
addAll(Collection<? extends E>)
向集合添加另一個集合全部元素,集合元素數沒有變化的話傳回false
删除功能
remove(Object)
從集合移除一個元素,集合元素數沒有變化的話傳回false
removeAll(Colletion<?>)
從集合移除另一個集合中所有元素,集合元素數沒有變化的話傳回false
defalut boolean
removeIf(Predicate<? super E>)
按條件從集合中移除相應元素,集合元素沒變化的話傳回false
void
clear()
清空集合内元素
retainAll(Collection<?> )
保留交集元素,移除不在交集中的元素,集合元素數沒有變化的話傳回false
判讀功能
contains(Object)
判讀對象是否在集合内
containsAll(Collection<?>)
判斷參數集合内元素是否都在集合内
equals(Object)
判斷集合是否與傳入對象"相等"
isEmpty()
判斷集元素是否為空
擷取功能
int
size()
擷取集合内實際元素數
Object[]
toArray()
傳回包含集合所有元素的數組
T[]
toArray(T[])
傳回包含集合所有元素的數組,如果集合元素數大于傳入數組長度,
傳回為建立數組,否則傳回為傳入數組,傳入數組若果有剩餘,多餘填
充為null值,如果數組類型與集合元素類型不符,抛出ArrayStoreException
hashCode()
傳回對象哈希值
疊代器
Iterator
iterator()
傳回集合疊代器
defalut SplIteraror
splIterator()
傳回集合可分割疊代器
其他
defalut Stream<E>
stream()
傳回對象流
parallelStream()
傳回對象并行流
Colletion接口中定義的方法是集合操作中最通用的操作方法,按照對元素不同的操作類型大緻可以分為添加,删除,判斷,擷取這四種,集合為了實作元素的周遊還要提供一個擷取疊代器的方法,此外在java 8之後為了應對現在分布式并行操作需求,提供了一個可分割疊代器spliterator(),為了友善開發者對集合元素快速周遊和處理,java 8新提出的聚合操作概念,可以通過stream()和parallelStream()方法來實作聚合操作.
對于集合的周遊,我們知道Collection繼承了Iterable接口.是以可以使用疊代器和for-loop以及forEach()形式進行周遊. 在Java 8之後,我們可以擷取集合的流(stream),然後進行聚合操作(Aggregate Operations)周遊,而聚合操作通常與lambda表達式相結合,使得代碼更簡潔有力.
輸出:
Set是一種無序而元素唯一的集合類型,它是比如撲克中的卡牌,學生課程表安排的課程,計算機中運作的程序這些事物的數學概念的抽象表示.Set接口相比Colletion并沒有更多的操作方法,而他的子接口SortedSet和NavigableSet進行了更多的拓展,可以看出子接口中方法側重對元素的比較和排序
List是一種有序且元素可重複的集合類型,它像數組一樣可以通過索引來快速查找操作元素.
Queue是一種隊列結構,它更适合用來存儲資料而不是處理資料.Queue常用來做先見先出的(FIFO)的存儲結構,新加入的元素會被存儲在集合尾部,取出元素則會從頭部取出.Deque是一種雙向隊列,既可以做先進先出(FIFO)也可以做先進後出(LIFO)。