標籤:
Collection介面是List、Set、Queue介面的父介面
Collection介面定義了可用於操作List、Set和Queue的方法--增刪改查
List介面及其實作類別--ArrayList
List是元素有序並且可以重複的集合,被稱為序列。
List可以精確的控制每個元素的插入位置,或刪除某個位置元素
List有add()插入方法和get()擷取方法
ArrayList--數組序列,是List的一個重要實作類別
ArrayList底層是由數組實現的,這也是其名字的由來
List介面
List中的元素是有序的且可以重複
添加:ArrayList.add(對象),預設添加在List的最後,可以在指定位置添加 ArrayList.add(索引位置,對象),可以用get()方法取出來
ArrayList.addAll(Arrays.asList(數組對象))方法可以一次添加多個對象,Arrays.asList()就是將數組轉化為一個List對象
ArrayList.get(int index) 一定要注意,a使用dd()或者是addAll()方法插入的元素一律會變成Object類型,那麼使用get()方法取出時也將是Object類型的,這是接受取出的元素時,要做相應的類型強轉。
類型 對象 = (類型) ArrayList.get(索引位置);//對象存入集合都變成object類型,取出時需要進行類型轉換
刪除:ArrayList.remove(對象或者對象在List中的索引位置)
修改:ArrayList.set(索引位置,修改內容)
通過ArrayList.size()方法可以得到List長度
可以通過foreach(元素類型 元素變數 :遍曆對象名(即數組名))方法,get方法,迭代器iterator方法 遍曆List
foreach方法中,元素類型固定為Object,因為放到集合中時,元素的類型被忽略了
iterator方法中,用hasNext()方法來確定是否List還有元素,有則返回true。迭代器不儲存東西,依賴其他結構存在
泛型
在開發中,可以建立一個泛型來規定對象的類型。在集合中,不能添加泛型規定類型意外的對象。
泛型中除了可以添加規定的類型還可以添加規定類型的子類型。
定義子類型的時候要在父類型中添加一個無參的構造方法,否則出錯,因為調用子類型的構造方法時,系統會預設調用父類的無參構造方法(super();)。
泛型集合中不能使用基礎資料型別 (Elementary Data Type),要使用基礎資料型別 (Elementary Data Type)的封裝類,即Integer,Long,Boolean。或者為參考型別List<Course> course
Set介面
Collection介面-Set介面 - 實作類別HashSet
一、Set是元素【無序且不可重複】的集合,被稱作集
二、HashSet——雜湊集,是Set的重要實作類別
***注意:與List比較
· Set的遍曆只能用foreach和iterator,不能用get()方法(因為是無序表),同理,也沒有set()方法
· Set中重複添加一個對象,只會保留一個,並且保留的是第一次的添加的那一個。
Set中可以添加Null 物件,但是一般開發中不這麼用。
Java中Collection介面的用法