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()】->【选择要参与计算的属性】。

猜你喜欢

转载自blog.csdn.net/MeowingCat/article/details/80151304