list 元素是有序的,元素可以重複,因為該集合體系有索引
1.arraylist
底層的資料結構是陣列結構。特點:查詢速度快,但是增刪相對較慢,執行緒不同步。
2.linkedlist
底層資料採用的是鍊錶結構的。特點:增刪較快,查詢較慢。
2.vector
底層的資料結構是陣列結構。特點:執行緒同步,被arraylist取代了。
set:元素師無序的,元素不可以重複。
1.hashset:
底層是雜湊表結構。
hashset是如何保持資料唯一性的?
是通過元素的兩個方法hashcode()和equals()搞定的。
如果元素的hashcode相等則會判斷equals()是否返回true。
2.treeset:
底層結構是二叉樹。
可以對set元素集合進行排序。
保證元素唯一性的依據:comparato方法return 0;
(1)treeset排序的第一種方法
讓其自身具備比較性。元素需實現comparable介面,覆蓋comparsto方法。
comparato(object obj)
if(!(obj instanceof student))
throw new runtimeexception("型別不匹配");
student stu=(student)obj;
int num=this.nam.compareto(stu.name);
return num
(2)定義自己的比較器傳為引數傳入建立treeset的初始化中,
實現comparato介面 覆蓋compare(string s1,string s2)方法。
List Set集合以及子類的特點
是有序 可重複 可以有null的集合,就像我們的陣列一樣。我們可以吧list理解為乙個長度可變了陣列,而且提供了豐富的api。arraylist 底層是陣列的原理,元素可以重複,有順序,長度不固定,不是執行緒安全的,效率高。arratlist長度的變化 arratlist在新增資料的時候,初始長度為...
集合框架(List的三個子類的特點)
list的三個子類 面試題比較多 arraylist 底層資料是陣列,查詢快,增刪慢 執行緒不安全,效率高 jdk 1.2 vector 底層資料是陣列,查詢快,增刪慢 執行緒安全,效率低 jdk1.0出現,在1.2並到list中,一般不用,被淘汰 linkedlist 底層資料是鍊錶,查詢慢,增刪...
集合框架List的三個子類的特點
list的三個子類的特點 vector和arraylist的區別 vector是執行緒安全的,效率低 arraylist是執行緒不安全的,效率高 共同點 都是陣列實現的 arraylist和linkedlist的區別 arraylist底層是陣列結構,查詢和修改快 linkedlist底層是鍊錶結構...