天天看點

java集合------Collection

一.概述

java集合------Collection

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表達式相結合,使得代碼更簡潔有力.

輸出:

java集合------Collection

   Set是一種無序而元素唯一的集合類型,它是比如撲克中的卡牌,學生課程表安排的課程,計算機中運作的程序這些事物的數學概念的抽象表示.Set接口相比Colletion并沒有更多的操作方法,而他的子接口SortedSet和NavigableSet進行了更多的拓展,可以看出子接口中方法側重對元素的比較和排序

  List是一種有序且元素可重複的集合類型,它像數組一樣可以通過索引來快速查找操作元素.

  Queue是一種隊列結構,它更适合用來存儲資料而不是處理資料.Queue常用來做先見先出的(FIFO)的存儲結構,新加入的元素會被存儲在集合尾部,取出元素則會從頭部取出.Deque是一種雙向隊列,既可以做先進先出(FIFO)也可以做先進後出(LIFO)。