一:Collection接口
集合:集合是java中提供的一種容器,能夠用來存儲多個數據
Collection即單列集合。統必定義了一套單列集合的接口
java
向集合中添加一個元素。集合更改則添加成功返回true,若是該集合不容許重複而且已經包含指定的元素。返回false。部分子類的add方法可能會限制添加到集合中的元素類型,或者不會將NULL添加到集合中。數組
清空掉集合中的全部元素安全
若是集合中包含指定元素那麼返回true。特別的,若是集合中也包含NULL元素的時候而且要查找的元素也是NULL的時候也返回true。數據結構
若是集合中沒有元素返回true。ide
刪除集合中的指定的元素。若是存在NULL,也刪除。函數
返回該集合中元素的個數。若是超過了Integer.MAX_VALUE,那麼返回Integer.MAX_VALUE。線程
見名知意,返回包含此集合中全部元素的數組。若是這個集合的迭代器保證元素有序,那麼該方法與其迭代器中元素順序一致。而且該方法返回的數組是拷貝出來的(某些集合底層數組實現,區別這個),能夠進行任意的更改。對象
二:List 接口
和Set集合最大的不一樣即:blog
從Api列表中咱們能夠看到List接口定義了一個listIterator函數,返回一個ListIterator接口。該接口繼承自Iterator接口,並提供了更多的函數。排序
Set 接口
相比於List集合最大的區別:
這裏咱們強調一下,有些地方說Set集合是無序的,實際上是不嚴謹的。能夠看到jdk註釋中是沒有指明這一點的,那麼List集合的註釋中的有序和有些人常說的Set集合是無序的是什麼意思呢?
首先要搞清楚、Java中有序和無序的概念:
有序指的是存儲順序與添加順序相同,而且能夠經過下標訪問,List就是這樣。
無序恰好相反,指的是存儲順序與添加順序無關,沒有下標,固然也不可能經過下標訪問,Set就是如此。
這裏須要注意的是,有序、無序中的「序」與咱們日常所說的「順序」無關。
而TreeSet是無序,但又是排好序的。即添加順序與存儲順序無關,可是其中的對象實現了排序。
1.數組的長度是固定的,集合的長度是可變的2.數組中存儲的是一種數據類型的元素,能夠存儲基本數據類型也能夠存儲引用數據類型,集合存儲的都是對象,並且對象的數據類型能夠不同。再開發當中通常當對象較多的時候,使用集合來存儲對象