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)方法。