HashMap的特點(diǎn):
? ? ? ? ? (1)無序
? ? ? ? ? (2)key唯一钦椭,value不唯一
? ? ? ? ? (3)key相同护锤,value進(jìn)行覆蓋
? ? ? ? ? ? ? 存儲(chǔ)數(shù)據(jù)可以允許使用 null 值和 null 鍵
存儲(chǔ)數(shù)據(jù)的不一定是有序排列
TreeMap
? ? ? ? ? ? TreeMap存儲(chǔ)數(shù)據(jù)的方式是按照紅黑樹存儲(chǔ)的,存儲(chǔ)數(shù)據(jù)的順序是自然順序?
TreeMap中不可以存儲(chǔ)Null值的Key,Value可以 ?
? ? ? Hashtable
? ? ? ? ? ? ? Key和Value都不能為null,一旦存儲(chǔ)null值會(huì)報(bào)空指針異常
? ? ? Map的遍歷
三種遍歷方式
? ? ? ? 第一種遍歷方式: 通過key去獲取value
? Set set=map.keySet();
? ? for(Object obj:set){
System.out.println("key:"+obj+"values:"+map.get(obj));
}
? ? ? ? 第二種遍歷方式:直接獲得value
? Collection values=map.values();
? ? for(Object obj:set){
System.out.println(obj);
}
? ? ? ? 第三種遍歷方法:通過map里的一個(gè)內(nèi)部接口
Set<Map.Entry> entry= map.entrySet();
for(Map.Entry entry1:entry){
? System.out.println("key:"+entry.getKey()+"values:"+entry.getValue());
}?
數(shù)據(jù)結(jié)構(gòu)?
ArrayList?
? ? 底層是一個(gè)數(shù)組結(jié)構(gòu)
? ? 集合添加的方法(add()):數(shù)組的擴(kuò)容,數(shù)組的拷貝犁珠,長度的增加
? ? 集合長度(size())
? ? ? ? 判斷集合是否為null? (isEmpty())
? ? ? ? 通過索引刪除的方法(remove())? 每刪除一個(gè)值,size--?
? ? ? ? 通過索引獲得集合的值(get())? 傳進(jìn)來的索引值>集合長度互亮,拋RuntimeException?