我正在寻找像ArrayList这样的对象,它可以让我避免重复的条目。 例如,在将每个条目添加到ArrayList之前,它可能有一个调用'contains()'的方法。
ArrayList<String> al = new ArrayList<String>();
if(!al.contains("red")){
al.add("red");
}
这样的事情是否存在?
答案 0 :(得分:8)
ArrayLists和Lists通常不是为避免重复而设计的,它们被设计为一种集合,可以维护许多元素的顺序。如果你想要一个更适合这份工作的系列,你需要一套:
Set<String> set = new HashSet<String>();
然后,您可以将所有想要的内容添加到集合中,它将永远不会包含重复的字符串。请注意,如果您在自己编写的课程中使用此课程,那么您需要实施equals()
和hashcode()
才能使其正常工作。
如下面的评论所示,如果您仍然需要维护订单和删除重复项,那么LinkedHashSet
就是您的朋友。