JAVA常用知識(mian shi)點總結---集合
一、Collection 與 Collections的區別:
1. Collections:
java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化,就像一個工具類,服務於Java的Collection框架。
2. Collection:
Collection是最基本集合接口,它定義了一組允許重復的對象,提供了對集合對象進行基本操作的通用接口方法,其意義是為各種具體的集合提供了最大化的統一操作方式。
二、Collection 基礎:
1. Collection接口派生了兩個子接口Set和List,分別定義了兩種不同的存儲方式,如下:
(1)List 是實現了List接口的集合類,有序且可以重復,兩個重要的實現類 ArrayList和LinkedList,特性如下:
ArrayList: 底層是維護了一個Object數組實現的。 特點: 查詢速度快,增刪慢。
LinkedList:底層是使用了雙向鏈表數據結構實現的, 特點: 查詢速度慢,增刪快。
Vector(不常用): 底層也是維護了一個Object的數組實現的,實現與ArrayList是一樣的,但是Vector是線程安全的,操作效率低。
(2)Set 是實現了Set接口的集合類,無序且不可重復。兩個重要的實現類HashSet和TreeSet
HashSet: 底層是使用了哈希表來支持的,特點: 存取速度快.
TreeSet: 如果元素具備自然順序 的特性,那麽就按照元素自然順序的特性進行排序存儲。
2. Collection接口中的方法:
(1) 增加
add(E e) 添加成功返回true,添加 失敗返回false.
addAll(Collection c) 把一個集合 的元素添加到另外一個集合中去。
(2) 刪除
clear()
remove(Object o)
removeAll(Collection c)
retainAll(Collection c)
(3) 查看
size()
(4) 判斷
isEmpty()
contains(Object o)
containsAll(Collection<?> c)
(5) 叠代
toArray()
iterator()
3. Map&Iterator接口及Comparable接口
1) Map接口:
該接口描述了從不重復的鍵到值的映射。Map接口用於維護鍵/值對(key/value pairs)。
特征:它描述了從不重復的鍵到值的映射。兩個重要的實現類:HashMap和TreeMap
HashMap:基於哈希表實現,特點就是鍵值對的映射關系。一個key對應一個Value。HashMap中元素的排列順序是不固定的。更加適合於對元素進行插入、刪除和定位。
TreeMap:基於紅黑樹實現。TreeMap中的元素保持著某種固定的順序。更加適合於對元素的順序遍歷。
2) Iterator接口:
集合訪問器,用於循環訪問集合中的對象。所有實現了Collection接口的容器類都有iterator方法,用於返回一個實現了Iterator接口的對象。
Iterator對象稱作叠代器,Iterator接口方法能以叠代方式逐個訪問集合中各個元素,並可以從Collection中除去適當的元素。
3) Comparable接口:
可以用於比較的實現,實現了Comparable接口的類可以通過實現comparaTo方法從而確定該類對象的排序方式。
三、HashMap和Hashtable的區別
1. HashTable:
線程安全的,多個線程可以共享一個Hashtable;而如果沒有正確的同步的話,多個線程是不能共享HashMap的。
Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴展性更好,單線程環境下它比HashMap要慢。
2. HashMap:
非synchronized,並可以接受null(HashMap可以接受為null的鍵值(key)和值(value),而Hashtable則不行。
HashMap不能保證隨著時間的推移Map中的元素次序是不變的。
另外,HashMap的叠代器(Iterator)是fail-fast叠代器,而Hashtable的enumerator叠代器不是fail-fast的。
未完待續。。。。。。
JAVA常用知識(mian shi)點總結---集合