java - 使用 Set - 自动删除重复项?

标签 java collections set duplicates

我有一个类如下(Bean):

class KeysHolder {
   Long kitId;
   String packId;
   String boxId;

   // getters and setters
    .......
   // @Override equals and hashCode
}

我有一个包含上述对象的集合

 Set<KeysHolder> keys;

现在,如果我继续将对象添加到集合中,它是否会根据每个元素的值自动删除重复项? (我知道它在内部使用了 Overridden equals 和 hashCode 方法)。

最终集合不应包含基于每个字段相等性的任何重复项。

  obja.kitId = objb.kitId
  objb.packid = objb.packId
  obja.boxId = objb.boxId

谢谢!

最佳答案

Now if I keep adding the object to the set, does it automatically remove duplicates based on the values of the each elements.

如果Set实现发现该元素重复,则根本不会插入。

来自 HashSet#add(E e) 的 Javadocs :

Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no element e2 such that (e==null ? e2==null : e.equals(e2)). If this set already contains the element, the call leaves the set unchanged and returns false.

关于java - 使用 Set - 自动删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222226/

相关文章:

linux - 在 Linux 上的 IDE 下没有声音(在 Jar 中正常)

c# - ObservableCollection<T>.Move(int,int) 是如何工作的?

java - 使用 Class 对象实例化 Java 类型参数/泛型

Java TreeSet<int[]> : duplicate elements?

java - 从 Java ResultSet 返回值时出现问题

Java、Hibernate - 如何创建通用 getByColumnValue() 方法?

java - 如何使用 Java 加密 PDF?

java - 如何在 ListView 中显示多个图像?

c++ - 如何将 unordered_set 与自定义结构一起使用?

Java:在 3 行或更少的时间内查找 2 个集合的并集、交集、差异和异或