集合框架+泛型
泛型
在提到泛型之前我們需知什麼是集合?為什麼要使用集合?
集合是在陣列之後提出的,集合比陣列更加靈活,陣列的長度是固定不變的,
如果資料多則造成空間不足,如果資料少,則造成浪費記憶體空間。如果我們不知道程式有多少物件,而集合便可以解決該問題。
集合框架都包含三大內容:介面的實現,對內的實現和對集合運算的演算法。
介面:表示對集合的抽象資料型別,如list,map,collection,set,lterator。
我們在使用集合的時候都不會用介面,而是用介面的實現,
實現:集合框架中介面的具體實現。如ArryList,linkedList,HashMap,HashSet。
演算法:某個集合框架中的介面的物件身上完成某種有用的計算演算法,java提供了對集合操作的工具類Collections,他提供了對集合進行排序等多種演算法實現。
ArryList:
存放的資料有序且可重複。
List list=new ArryList();
List<資料的型別> list=new ArryList<資料的型別>();
<>內可以存放String,int等等,還可以存放泛型,也就是類型別。如:List<User> list=new ArryList<User>();
LinkedList:
採用連結串列方式儲存。優點在於插入,刪除元素時效率比較高。
它提供了額外的addFirst(),addLast(),removeFirst(),removeLast()等方法。
List list=new LinkedList();
List<> list=new LinkedList<>();
HashMap:
Map集合可以儲存多個元素,每一個元素都由一個key和value組成,也就是鍵值對。map是使用put的方式來新增資料的。
Map map=new HashMap();
Map<key,value> map=new HashMap<key,value>();
Map集合獲取資料時,使用key來獲取資料,key不要求有序,但不可以重複。HashMap方式儲存資料的優點是查詢指定元素效率高。
泛型類:泛型型別可以為T V K E等等,用於佔位,可以指定具體的泛型型別。泛型類,是在例項化類的時候指明泛型的具體型別。
泛型介面:泛型型別可以為T V K E等等,用於佔位,可以指定具體的泛型型別。
泛型方法:泛型方法,是在呼叫方法的時候指明泛型的具體型別 。
泛型集合:
使用泛型集合建立集合物件時指定集合中元素的型別,從集合中取出元素時無需進行型別強制轉換,並且如果把非指定型別物件放入集合,會報錯。