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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值