Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我正在寻找一个现有的Java Set实现,当用该集合中已有的对象调用add方法时,该实现会引发异常。有谁知道某个知名图书馆中是否存在?
编辑:关于这个问题似乎有很多困惑。我不是在问如何实现set接口。我需要向供应商提供一小段代码,而不必向他们发送包含我创建的自定义集合的库。他们将拥有可用的常用库(据我所知,它们是使用Maven设置的)。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我正在寻找一个现有的Java Set实现,当用该集合中已有的对象调用add方法时,该实现会引发异常。有谁知道某个知名图书馆中是否存在?
编辑:关于这个问题似乎有很多困惑。我不是在问如何实现set接口。我需要向供应商提供一小段代码,而不必向他们发送包含我创建的自定义集合的库。他们将拥有可用的常用库(据我所知,它们是使用Maven设置的)。
最佳答案
您可以按照以下方式进行操作:
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class UniqueSet<E> extends HashSet<E> implements Set<E> {
private static final long serialVersionUID = 1L;
public UniqueSet() {
}
public UniqueSet(Collection<? extends E> c) {
super(c);
}
public UniqueSet(int initialCapacity) {
super(initialCapacity);
}
public UniqueSet(int initialCapacity, float loadFactor) {
super(initialCapacity, loadFactor);
}
@Override
public boolean add(E e) {
if (super.contains(e))
throw new IllegalArgumentException("Already in set!");
return super.add(e);
}
}