1·:java中的集合【常用】主要包括collection和map:
2:各接口和類所包含的方法及其特點:
2.1:collection:最上層的集合接口;
List:
線性存儲,有序可放重複對象,可精確控制每個元素的控制位置,用戶可以使用索引訪問每個元素【元素有序且可重複】。
除去來自父接口的方法外,也有適應自己屬性的方法。【見api】
ArrayList:1 This class is roughly equivalent toVector, except that it is unsynchronized.【注意與Vector中的區別,重點】
2.容量隨着元素的增加而自動增加。
ArrayList和Vector使用了數組的實現,可以認爲ArrayList或者Vector封裝了對內部數組的操作,比如向數組中添加,刪除,插入新的元素或者數據的擴展和重定向。
LinkedList使用了循環雙向鏈表數據結構。與基於數組ArrayList相比,這是兩種截然不同的實現技術,這也決定了它們將適用於完全不同的工作場景。
2:Set集合:
像一個罐子【裏面的元素無序但不可重複】
3:map(k,v):
涉及到集合類的,要考慮三個主要的因素:查找速度、數據量、內存個使用。map內部採用紅黑樹,紅黑樹具有自動排序的功能,
所以在map內部所有的數據都是有序的,在查找【二分查找】,插入等方面有一定的優勢【學校學生有studid,studiname,此時我們就可以定義一個Map<int,String>,通過查找studid即可實現快速查找。】
如果不需要一個有序的集合,則建議使用HashMap[存儲在一個環形的內存中,計算hash值]類;如果需要進行有序的遍歷輸出,則建議使用TreeMap類或者LiskedHashMap。 在這種情況下,可以先使用 HashMap。在需要排序時,利用現有的 HashMap,創建一個 TreeMap 類型的實例
優秀文件鏈接:http://www.cnblogs.com/qq-757617012/p/4279093.html