java addall equals_java HashSet 中addall()函数有重复怎么办?

定义了两个HashSet变量,用addall()函数把两个变量元素整合到一次,但是发现有重复的,可是Set不是不可重复吗?其中的元素是一个我自己设的类,我在类中已经重写了equals函数跟Hash...

定义了两个HashSet变量,用addall()函数把两个变量元素整合到一次,但是发现有重复的,可是Set不是不可重复吗?其中的元素是一个我自己设的类,我在类中已经重写了equals函数跟Hashcode函数了,怎么还有重复呢?我的积分不高,请大家帮忙看看谢谢!我的代码如下:

public static void main(String arg[]) {

Collection a = new TreeSet();

Collection b = new HashSet();

a.add(new Name("a","1"));

a.add(new Name("b","2"));

a.add(new Name("c","3"));

b.add(new Name("a","1"));

b.add(new Name("b","2"));

b.add(new Name("d","4"));

Collection c = new HashSet(a);

Collection d = new HashSet(b);

c.addAll(b);

d.retainAll(a);

System.out.println(c);

System.out.println(d);

//Name这类的定义如下:

this.Firstname = firstname;

this.Lastname = lastname;

}

public String toString() {

return (Firstname + "" + Lastname);

}

public boolean equals(Name name) {

boolean a = Firstname.equals (name.Firstname);

boolean b =Lastname.equals(name.Lastname);

return a&&b;

}

public int hashCode () {

return Firstname.hashCode();

}

public int compareTo (Name n) {

int a = Firstname.compareTo(n.Firstname);

return a!=0? a:(Lastname.compareTo(n.Lastname));

}

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值