怎么样删除list里面相同的对象??


public class TestSet
{
public static void main(String[] args)
{
Random rand = new Random();
Set<String> setStr = new HashSet<String>();
String
aa=new String("aaa"),
bb=new String("aaa");
System.out.println(aa==bb);
setStr.add(aa);
setStr.add(bb);
System.out.println(setStr);
System.out.println(setStr.size());
System.out.println();
}
}
//显示结果是:
//false
//[aaa]
//1
//HashSet里持有的对象是String类或者Integer类,那就可以保证元素的值不重复,但如果存放的是我自己写的类的话,那就肯定会有重复的元素,比如下面这段程序:
Set<MyObj> setobj = new HashSet<MyObj>();
for(int i=0;i<30;i++)
{
setobj.add(new MyObj(rand.nextInt(10)));
}
System.out.println(setobj);
System.out.println(setobj.size());
System.out.println();
//显示结果如下:
//[9, 1, 5, 3, 1, 7, 6, 5, 6, 1, 3, 2, 5, 0, 3, 6, 6, 6, 9, 8, 6, 5, 5, 8, 5, 1, 1, 2, 3, 0]
//30
//很明显元素的值重复了,谁能告诉我这是为什么呢??哎
//另外,MyObj类如下:
public class MyObj implements Comparable<MyObj>,Serializable
{
private int i;
public MyObj(int i)
{
this.i=i;
}
public int getI()
{
return i;
}
public String toString()
{
return Integer.toString(i);
}

public int compareTo(MyObj obj)
{
if (this.getI()>obj.getI())
return 1;
else if (this.getI()==obj.getI())
return 0;
else
return -1;
}
}
//给MyObj类加上了一个hashCode()方法和equals()方法,于是我的MyObj也不重复了,可能HashSet中,这两个方法必须被覆盖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值