如何检查Java中的ArrayList中是否存在重复元素

时间:2013-03-20 07:56:16

标签: java

我有一个ArrayList演员。当我打印这个actor变量时,我得到一个像这样的输出:

拉姆,板球,拉姆,国际象棋

我只想只拿一个“Ram”而不是重复。

6 个答案:

答案 0 :(得分:6)

您需要使用Set代替List

来自文档: -

  

不包含重复元素的集合。更正式的,集合   不包含元素e1和e2对,使得e1.equals(e2)和at   大多数一个null元素。正如其名称所暗示的,这个界面模型   数学集抽象。

答案 1 :(得分:2)

您可能希望使用Set代替ArrayList,因为它会存储唯一元素。

答案 2 :(得分:1)

你为什么要使用arraylist?使用Set。

或者,如果您想知道如果有任何重复项,请使用java.util.Collections.sort()进行排序,然后将前一个元素与当前元素进行比较以查找重复项

public int getNumOfDuplicates(List<Integer> dupAraay)
{ 
  Set<Integer> yourSet = new HashSet();
  int dupFound = 0;

  for (Integer yourInt : dupAraay)
  {
   if (!set1.add(yourInt))
   {
    dupFound++;
   }
  }
  return dupFound;
}

答案 3 :(得分:1)

ArrayList<String> values = ... //Your values
HashSet<String> uniqueValues = new HashSet<>(values);
for (String value : uniqueValues) {
   ... //Do something
}

答案 4 :(得分:1)

你应该使用一套。具体来说,我建议HashSet如果顺序无关紧要,LinkedHashSet如果你想保留到达顺序。

如果由于其他原因确实需要ArrayList,可以通过复制到LinkedHashSet然后再返回来删除重复项。这可能比排序和测试更快。

答案 5 :(得分:1)

contains

这是数组列表中提供的方法,适用于java docs。