想避免在ArrayList中重复条目

时间:2011-03-03 12:03:22

标签: java

我正在寻找像ArrayList这样的对象,它可以让我避免重复的条目。 例如,在将每个条目添加到ArrayList之前,它可能有一个调用'contains()'的方法。

ArrayList<String> al = new ArrayList<String>();
if(!al.contains("red")){
  al.add("red");
}

这样的事情是否存在?

1 个答案:

答案 0 :(得分:8)

ArrayLists和Lists通常不是为避免重复而设计的,它们被设计为一种集合,可以维护许多元素的顺序。如果你想要一个更适合这份工作的系列,你需要一套:

Set<String> set = new HashSet<String>();

然后,您可以将所有想要的内容添加到集合中,它将永远不会包含重复的字符串。请注意,如果您在自己编写的课程中使用此课程,那么您需要实施equals()hashcode()才能使其正常工作。

如下面的评论所示,如果您仍然需要维护订单删除重复项,那么LinkedHashSet就是您的朋友。