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

Kev*_*ave 2 java collections set duplicates

我有一个类如下(Bean):

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

   // getters and setters
    .......
   // @Override equals and hashCode
}
Run Code Online (Sandbox Code Playgroud)

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

 Set<KeysHolder> keys;
Run Code Online (Sandbox Code Playgroud)

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

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

  obja.kitId = objb.kitId
  objb.packid = objb.packId
  obja.boxId = objb.boxId
Run Code Online (Sandbox Code Playgroud)

谢谢!

NIN*_*OOP 6

现在,如果我继续将对象添加到集合中,它是否会根据每个元素的值自动删除重复项.

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

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

如果指定的元素尚不存在,则将其添加到此集合中.更正式地,如果此集合不包含元素e2 (e == null?e2 == null:e.equals(e2)),则将指定元素e添加到此集合.如果此set已包含该元素,则调用将保持set不变并返回false.