List
Collection 老祖先,接口(interface)
List 子接口
ArrayList,LinkedList,Vector 實現(xiàn)類
Set 子接口
HashSet(無序),TreeSet(有序)
ArrayList:動態(tài)數(shù)組,表示數(shù)組長度可變
ArrayList,LinkedList 使用方法完全一樣, 區(qū)別
數(shù)據(jù)存儲方式不一樣,稱為不同的數(shù)據(jù)結構
ArrayList:基于數(shù)組實現(xiàn)(優(yōu)點:連續(xù)存放,查找速度比較快,缺點是增加元素或者刪除元素比較慢),
LinkedList基于鏈表實現(xiàn)(缺點:不連續(xù)存放,查找速度比較慢,優(yōu)點:增加元素或刪除元素比較快)。
Vector 向量:基于數(shù)組實現(xiàn)的,但是已經(jīng)過時,現(xiàn)在都用ArrayList。
Set
集合中存儲的是對象的引用,對象存在堆(heap)里
注意不需要講所有的方法
迭代器(遍歷器)
迭代器用于遍歷集合中的元素
Iterator it=al.iterator();
while(it.hasNext())
{
處理元素;
}
for(Iterator it=al.Iterator;it.hasNext())
{
處理元素
}
調用it.next()獲取下一個元素,同時將指針往后指。
List共性
元素是有索引的,元素可以重復
Set
元素無索引,不可以重復(不可以放同樣的元素,放不進去)
HashSet(無序),TreeSet(有序)
數(shù)據(jù)存儲方式
HashSet:哈希表
TreeSet:二叉樹
Map
方法一:傳入的對象所屬的類,必須實現(xiàn)Comparable
方法二:初始化TreeSet時,傳入一個比較器(比較器是一個實現(xiàn)了Comparator的類的對象)作為一個構造參數(shù)。
========================================================================================================
Collection 接口 和 Map接口 集合框架的兩個老祖先
Collection(接口) Map(接口) <和Set很像>
/\ / | \
/ \ / | \
/ \ / | \
List(接口) Set(接口) HashMap,TreeMap,HashTable
/ \ (實現(xiàn)類)
/ \
/(實現(xiàn)類) (實現(xiàn)類) \
ArrayList,LinkedList,Vector HashSet,TreeSet
ArrayList基于數(shù)組 刪除速度比較哦慢,查找速度比較快
LinkedList基于鏈表 查找速度比較慢,增加刪除速度比較快
其中Collection 是單列集合,Map是雙列集合
key-value 鍵值對
鍵不可以重復,value可以重復
Map
HashMap
TreeMap
HashTable
HashTable:底層存儲結構是哈希表,鍵和值都不可以是null。已過時。
HashMap: 底層是哈希表,鍵值都可以是null。
TreeMap: 底層是二叉樹,支持鍵排序
keyset,valueset,entryset(Map.Entry)
讀取方式
1.獲得所有鍵的集合keyset
2.獲得所有值的集合valueset
3.獲得所有條目entryset
entry=一行,一個條目(包含鍵和值)
TreeMap:有序的(鍵是有序的)
關于泛型
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。