基礎篇之集合(二)總結
1. Map集合和collection結合的區別
1》Collection一次存一個元素;Map一次存一對元素;
2》Collection是單列集合;Map是雙列集合;
3》Map中的存儲的為鍵值對,鍵與值之間存在著映射關系 。
2. 數組和集合的區別
1》數組長度固定;集合長度可變;
2》數組可以存儲基本數據類型和存儲引用數據類型;集合只能存儲引用數據類型;
3. map下常用的集合<HashMap,TreeMap>
HashMap:底層基於數組加鏈表,鍵不可以重復,值可以重復,重寫了equals和hashcode方法;
原因:原因同HashSet。
Treemap:鍵可以排序,不可以重復,原理同TreeSet。
4.叠代器(iterator和Enumeration和ListIterator)
Iterator是Enumeration的升級版;
vector和hashtable用的叠代器是Enumeration;
hashmap,arraylist等的叠代器用是Iterator。
ListIterator是list集合特有的叠代器,可以在遍歷的過程中對元素的增、刪、改、查,其他兩個不能;
用法:
Hashnext同hasMoreElements;
Next同nextElement;
iterator較Enumeration多了remove,移除元素。
5. Hashtable同hashmap的區別;
Hashtable:鍵和值不能為空,線程安全,效率低,默認叠代器為Enumeration,父類為 Dictionary;
Hashmap:鍵可以一個為空,值可以多個為空,線程不安全,效率高,默認叠代器為iterator,父類為abstractmap;
Hashmap是hashtable的升級版,其他用法類似。
6. Properties
1》父類為hashtable
2》鍵值對可以通過put及setProperty輸入, setProperty有返回值;
3》值的獲取可以通過get及getProperty(String key) 和getProperty(String key, String defaultValue),其中getProperty (String key, String defaultValue)在沒有找到鍵的情況下可以返回指定返回值,String defaultValue為指定返回值;
4》list(PrintStream out):可以把流中的鍵值讀取到Properties集合中,system.out的返回值是PrintStream返回類型;可以輸出到控制臺(可以把文本路徑寫成Filedescriptor.out),也輸出到文件中,鍵值對格式為123=123-456,123為鍵,456為值,也可以把Properties集合的鍵值對寫入相對應的流,外加註釋的形式。
5》Properties集合的格式可以保存為Properties格式及xml格式
6》Properties常用方法
getProperty(String key, String defaultValue)獲取值,沒有按默認值返回
setProperty(String key, String value)輸入鍵值對有返回值
store(Writer writer, String comments)以Properties格式將鍵值對寫入輸出流,String comments註釋文字
load(Reader reader)從文本中讀取鍵值對
7. Weakhashmap
假如鍵為弱引用,在垃圾回收機制下會被回收,用法和hashmap差不多。
8. IdentityHashMap
根據地址是否相同去重,用法和hashmap差不多。
9. Enummap
鍵必須是枚舉值,用法和hashmap差不多。
10. Collections常用方法
Sort()按照自然順序排序
sort(List<T> list, Comparator<? super T> c)根據指定比較強排序
synchronized 保證線程安全
Empty 空容器,可以避免空指針異常
Singleton 只包含一個元素的容器
Unmodifiable 不可變的容器
reverse(List<?> list) 反轉順序
11.collections和collection的區別
1》 collections為工具類,collection為單列集合
2》 collections為collection中的list提供了大量的排序方法
3》 collections為collection提供了同步機制,保證線程安全等
基礎篇之集合(二)總結