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

Jav*_*per 0 java

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

现在我在hashset中使用它们.

hashset.add(t1);
hashset.add(t2);
Run Code Online (Sandbox Code Playgroud)

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

例:

void eradicateDuplicate(List<Time> list) {

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

}
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

MTi*_*ted 5

如果您实现方法#hashCode#equals在Time对象中,这将自动发生.