數據結構 集合類的彙總

注意:
       泛型:幾乎所有你會以泛型寫的程序都與處理集合有關,泛型的作用讓你寫出有類型安全性的集合。在泛型中,除非與集合有關,否則都是用T,因爲E很清楚的指明是元素。

 

Set:不能包含重複的元素。SortedSet是一個按照升序排列元素的Set
List:是一個有序的集合,可以包含重複的元素。提供了按索引訪問的方式。Map:包含了key-value對。Map不能包含重複的keySortedMap是一個按照升序排列keyMap
ArrayList:我們可以將其看作是能夠自動增長容量的數組。
利用ArrayListtoArray()返回一個數組。
Arrays.asList()返回一個列表。
迭代器(Iterator) 給我們提供了一種通用的方式來訪問集合中的元素。

 

排序:Collections.sort()
       1自然排尋(natural ordering )
              Collections有個sort()方法,public static void sortList list);
       如果List中存儲的爲String類型的數據,則list中的元素會以字母的順序排列。
       如果List中存儲的不爲String類型的數據,而是Object,則list中的元素不會按順序排列,當讓Object實現Comparable

 

       2實現比較器(Comparator)接口。
       3取最大和最小的元素:Collections.max()Collections.min()
       4在已排序的List中搜索指定的元素:Collectons.binarySearch()

 

 

LinkedListArraylist:

       LinkedList對於在中間的插入或刪除會比較快,但對大多數的應用程序而言ArrayListLinkedList的差異有限,除非元素量真的很大。
       ArrayList底層採用數組完成,而LinkedList則是以一般的雙向鏈表(double-linked list)完成,其內每個對象除了數據本身外,還有兩個 引用,分別指向前一個元素和後一個元素。
       如果我們經常在List的開始處增加元素,或者在List中進行插入和刪除操作,我們應該使用LinkedList,否則的話,使用ArrayList將更加快速。

 

HashSet
       實現Set接口的hash table(哈希表),依靠HashMap來實現的。
       我們應該爲要存放到散列表的各個對象定義hashCode()equals()

 

TreeSet
TreeSet是依靠TreeMap來實現的。
TreeSet是一個有序集合,TreeSet中元素將按照升序排列,缺省是按照自然順序進行排列,意味着TreeSet中元素要實現Comparable接口。
我們可以在構造TreeSet對象時,傳遞實現了Comparator接口的比較器對象。
HashSetTreeSet的比較
HashSet是基於Hash算法實現的,其性能通常都優於TreeSet。我們通常都應該使用HashSet,在我們需要排序的功能時,我們才使用TreeSet
HashMapTreeMap的比較
Set類似,HashMap的速度通常都比TreeMap快,只有在需要排序的功能的時候,才使用TreeMap
Java1.0/1.1的集合類
n       Vector:用ArrayList代替Vector
n       Hashtable:用HashMap代替Hashtable
n       Satck:用LinkedList代替Stack
n       Properties
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章