1. 程式人生 > >Java類集框架(三):Set子介面

Java類集框架(三):Set子介面

Set子介面只是簡單地繼承了Collection介面,並沒有擴充其他的方法。Set集合中不允許儲存重複的資料。在Set介面下有兩個常用的子類:HashSet、TreeSet。HashSet是雜湊存放資料,而TreeSet是有序存放的子類,預設按照字母的升序排列。在實際開發中如果沒有排序要求,應優先考慮HashSet子類。

關於資料排序

TreeSet子類中儲存的內容的排序,是依靠比較器介面(Comparable)實現的,即如果要利用TreeSet儲存任意類的物件,那麼該物件所在的類必須要實現java.lang.Comparable介面,而且在覆寫的compareTo方法中,需要比較所有屬性。

關於重複元素

除TreeSet以外的其他子類(例如HashSet)如果要消除重複元素,則必須依靠Object類中提供的兩個方法.

  • public int hashCode():取得雜湊碼,判斷物件的雜湊碼是否相同,依靠雜湊碼取得物件內容。
  • public boolean equals(Object obj):將物件的屬性進行依次的比較。

示例

利用HashSet子類儲存自定義物件,需要利用hashCode()和equals()兩個方法,這兩個方法可以利用Eclipse自帶的工具生成。操作步驟如下:
【Source】->【Generator hashCode() and equals()】->【選擇要參與計算的屬性】。