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:二叉樹結構:
比較器舉例: