JAVA基礎--db15_java集合框架

Vector集合:

在1.0的時候就有了,1.2之後納入了集合框架,現在基本被arraylist替代。其中,所有帶elements的方法,都是其獨有的

addElement()        Enumention  en =  vector.elements()

LinkedList集合:

addLast()  addFirst() removeFirst()  removeLast()因爲是鏈表,所以有的特殊方法

remove方法也會向外返回對象,刪除的同時返回,然後還會改變鏈表的長度

用linkedlist可以模仿堆棧(先進後出)和隊列形式(先進先出)的數據結構,利用其可以添加/刪除 首末元素的特性

後來多了peekFirst(獲取不移除,如果元素爲空返回null,這點是和getFirst()的區別,getFirst()如果沒有元素,則會返回異常NoSuchElementException)


上圖注意:存自定義對象,取的時候一定要向下轉型,因爲存的都是Object對象

Set集合的數據結構是哈希表

HashSet:

哈希表確定元素是否相同:1,判斷的是兩個元素的哈希值是否相同,如果相同,再判斷兩個對象的內容是否相同;判斷哈希值相同,其實判斷的是對象的hashCode的方法,判斷內容相同用的是equals方法

LinkedHashSet:鏈表和哈希表的組合

TreeSet:

再用treeset排序時,對自定義對象的排序出現了問題,此時引出了comparable

Comparable接口強行對實現它的每個類的對象進行整體排序

此接口中有一個CompareTo()方法,需要複寫。


Comparator:接口,比較器

強行對某個對象collection進行整體排序的比較器


一般comparable是默認的排序方式,很多類都已實現,我們在用的時候,更多的是使用比較器。

使用方法:定義一個類實現comparator接口,在裏面定義比較方法。

在new TreeSet()的時候,將自己定義的作爲構造傳入就行

classmyComparator implements Comparator{

}

TreeSet ts = newTreeSet(new myComparator());

如果以上方式一和方式二同時出現,則以方式二的爲主。

TreeSet:二叉樹結構:


比較器舉例:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章