1. 程式人生 > >07.集合和泛型

07.集合和泛型

# 一.集合框架概述 ![](https://kyun.ltyuanfang.cn/tc/2020/06/13/b1e200f77d5e5.gif) Java集合框架都位於Java.util包中 Java集合框架可以包含三大塊內容,對外介面,介面的實現,對集合運算的演算法 ## Set、List和Map可以看做集合的三大類: List集合是有序集合,集合中的元素可以重複,訪問集合中的元素可以根據元素的索引來訪問。 Set集合是無序集合,集合中的元素不可以重複,訪問集合中的元素只能根據元素本身來訪問。 Map集合中儲存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。 ## 介面 表示集合的抽象資料型別,例如Collection,List,Set,Map等 ## 實現 集合框架中的介面具體實現,例如ArrayList,HashSet,HashMap等 ## 演算法 在實現了集合框架介面的物件身上完成計算的方法。Java提供了集合框架的工具類Collections,它實現了對集合排序的多種演算法。 # 二.List介面 ArrayList對陣列進行了封裝,實現了可變長陣列,採用和陣列相同的儲存方法。 LinkedList採用連結串列儲存方式。 ## ArrayList ```java import Java.util.List; import java.util.ArrayList; puoblic class ListDemo{ public static void main(String [] args){ List list = new ArrayList(); for(int i=0;i<3;i++){ list.add("Hello"); } String a = (String)list.get(0); } } //List集合定義時不需要指定大小,也不用指定集合中儲存的資料型別 //List介面的add(Object o)方法的引數型別為Object,即使呼叫時傳入其他型別,但系統認為是Object型別,所以用get方法獲取元素是必須進行強制型別轉換 //獲取List集合的元素時使用get方法並傳入下標,然後強制轉化為實際型別 //使用remove,contains,indexOf等方法時應該重寫類的equals方法 ``` # 三.迭代器iterator 所有集合介面和類都沒有提供相應都遍歷方法,而是把遍歷交給迭代器Iterator完成。它隱藏了各種集合實現類的內部細節,提供了遍歷集合的統一程式設計介面。 Collection介面的iterator()方法返回一個Iterator。 ```Java //Iterator介面兩個方法 boolean hasNext()//判斷是否存在另一個可訪問的元素 Object next()//返回要訪問的下一個元素 ``` # 四.泛型集合 泛型有效的解決了上面提到的集合的add()方法的弊端,使用泛型集合在建立集合物件時指定集合中元素的型別,從集合中取出元素時無需進行強制型別轉換,並且如果把非指定型別物件放入集合,會出現編譯錯誤。 ```java import java.util.ArrayList; import java.util.List; public class m1 { public static void main(String [] args){ Student stu1 = new Student("Tom",10); Student stu2 = new Student("Aim",11); //泛型集合