Set 介面常用子類及其特點

2021-08-08 00:06:54 字數 2279 閱讀 3000

set 集合中元素不可重複,是無序的(存入和取出的順序是不一樣的),

set 介面中的方法和 collection 介面一致.

常用子類:

treeset : 可以對 set 集合中的元素進行排序, 是不同步的.

雜湊表如何確定元素是否相同?

判斷兩個元素的雜湊值是否相同,其實判斷的是物件的 hashcode() 方法

如果雜湊值相同,再判斷兩個物件的內容是否相同,用的是 equals() 方法

如果雜湊值不同,是不需要判斷 equals() 方法的

hashset 儲存自定義物件

// 往 hashset 集合中儲存 person 物件, 如果年齡和姓名相同,視為同乙個人.

// 視為相同元素

// 自定義 person 物件

public class person

public person(string name, int age)

public void setname(string name)

public string getname()

public void setage(int age)

public int getage()

// 覆蓋 object 類的 hashcode() 方法

public int hashcode()

// 覆蓋 object 類的 equals() 方法

public boolean equals(object obj)

}public class hashsettest}}

練習: 去除 arraylist 集合中重複的元素

// arraylist 集合儲存的為字串

public static void main(string args)

public static arraylist getsingleelement(arraylist al)

}return temp;

}// arraylist 集合儲存自定義物件

public static void main(string args)

public static arraylist getsingleelement(arraylist al)

}return temp;

}

// treeset 集合中儲存 perosn 物件

// treeset 集合對元素進行排序的方式一:

// 讓元素自身具備比較功能, 元素需要實現 comparable 介面,

// 覆蓋 compareto() 方法

// 自定義 person 物件, 實現 comparable 介面

public class person implements comparable

public person(string name, int age)

public void setname(string name)

public string getname()

public void setage(int age)

public int getage()

// 覆蓋 compareto() 方法

// 以 person 物件的年齡作為依據從小到大進行排序

// string 類具備 compareto() 方法, 比較兩個字串的大小

public int compareto(object obj)

}public class treesettestdemo}}

// treeset 集合第二種排序方式:(較常用)

// 應用場景: 不需要按照物件中具備的自然排序進行排序或者物件中不具備自然排序

// 讓 treeset 集合具備比較功能.

// 定義乙個類實現 comparator 介面, 覆蓋 compare 方法.

// 將該類物件作為引數傳遞給 treeset 集合的建構函式.

// 建立乙個根據 person 類的 name 進行排序的比較器

public class comparatorbyname implements comparator

}public class treesettestdemo

}}

treeset 內部結構**

參考資料

jdk 1.6 中文文件

List子類特點和Set子類特點

list的三個子類有vector,arraylist,linkedlist 特點 有序,可重複,有索引可以使用普通for迴圈遍歷 arraylist 底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢,執行緒安全,效率低 linkedlist ...

List介面及其子類的特點和遍歷方式

list的子類特點 arraylist 底層資料結構是陣列,查詢快,增刪慢 執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢 執行緒安全,效率底 linkedlist 底層資料結構是鍊錶,查詢慢,增刪快 執行緒不安全,效率高 案例 使用list的任意子類儲存字串或者儲存自定義物...

Map介面及其子類

map介面操作的是一對物件,即二元偶物件,map介面中的每個元素都使用 key value 的形式儲存在集合中.sortedmap介面是排序介面,只要是實現了此介面的子類,都屬於排序的子類.treemap就是此介面的乙個子類 hashmap 無序存放,新的操作類,key不允許重複 hahtable ...