如何在java中为非字符串对象使用Hashset

时间:2013-08-04 23:35:58

标签: java

假设我已经创建了一个名为Time的类,其构造函数需要3个参数。小时,分钟和秒。 现在,我创建一个对象t1 = new Time(10, 10, 10);,然后创建另一个对象t2 = new Time(10, 10, 10)

现在我在hashset中使用它们。

hashset.add(t1);
hashset.add(t2);

现在hashset的大小为2.如果对象的值相同,如何将其修改为大小为1?

示例:

void eradicateDuplicate(List<Time> list) {

  for (Time t : list) {
     hashSet.add(t);
   } 

}

我希望这段代码能够根除所有具有相同值的重复时间对象吗?

谢谢,

2 个答案:

答案 0 :(得分:5)

如果您在Time对象中实施方法#hashCode#equals,则会自动执行此操作。

答案 1 :(得分:0)

你不需要做任何事情。如果它与第一个相同,则不会添加第二个。