1、集合介紹
對于保存多個數據使用的是數組,那么數組有不足的地方。比如,
-
長度開始時必須指定,而且一旦制定,不能更改。
-
保存的必須為同一類型的元素。
-
使用數組進行增加/刪除元素的示意代碼,也就是比較麻煩。
為了解決數組這些不足之處,那么就可以引出集合來處理。下面先說一下集合的好處。
-
可以動態保存任意多個對象,使用比較方便。
-
提供了一系列方便的操作對象:add、remove、set、get等。
-
使用集合添加或刪除新元素,代碼簡潔。
集合體系圖如下,Collection是單列接口,Map是雙列接口。虛線可以看成實現關系,實線可以看成繼承關系。
2、Collection接口實現類的特點
public interface Collection<E>extends Iterable<E>
-
Collection實現子類,可以存放多個元素,每個元素可以是Object。
-
Collection的實現類,有些是有序地(List),有些不是有序(Set)。
-
有些Collection的實現類,可以存放重復的元素,有些不可以。
-
Collection接口沒有直接的實現子類,是通過它的子接口Set和List來實現的。
3、Collection接口常用方法。
以實現子類ArraysList來演示。
方法總結:
add()? // 添加單個元素
remove() //刪除指定元素
contains() //查找元素是否存在
size() //獲取元素個數
isEmpty() //判斷是否為空
clear() //清空
addAll() //添加多個元素
contains All() //查找多個元素是否都存在
removeAll() //刪除多個元素
//由于接口不能直接被實例化,只有實現了接口的類才能被實例化,所以這里我們使用ArrayList//使用List接口接收List list = new ArrayList();//add() 添加單個元素list.add("jack");list.add("marry");list.add("smith");System.out.println(list);//[jack, marry, smith]//remove() 刪除指定元素list.remove("jack");System.out.println(list);//[marry, smith]//contains() 查找元素是否存在System.out.println(list.contains("jack"));//false//size() 獲取元素個數System.out.println(list.size());//2//isEmpty() 判斷是否為空System.out.println(list.isEmpty());//false//clear() 清空list.clear();System.out.println(list.isEmpty());//true//addAll() 添加多個元素List list1 = new ArrayList();list1.add(1);list1.add("終極筆記");list1.add("老九門");list.addAll(list1);System.out.println(list1);//[1, 終極筆記, 老九門]// containsAll() 查找多個元素是否都存在System.out.println(list1.containsAll(list1));//true//removeAll() 刪除多個元素list1.removeAll(list1);//trueSystem.out.println(list1.size());//0