【问题标题】:How to check if there are duplicate elements in an ArrayList in Java [duplicate]如何检查Java中的ArrayList中是否存在重复元素[重复]
【发布时间】:2013-03-09 05:25:54
【问题描述】:

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

公羊,板球,公羊,国际象棋

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

【问题讨论】:

标签: java


【解决方案1】:

为什么要使用数组列表?使用集。

或者如果您想知道是否有任何重复项,请使用 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;
}

【讨论】:

    【解决方案2】:

    contains

    这是用于 java 文档的数组列表中可用的方法。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:
        ArrayList<String> values = ... //Your values
        HashSet<String> uniqueValues = new HashSet<>(values);
        for (String value : uniqueValues) {
           ... //Do something
        }
        

        【讨论】:

          【解决方案5】:

          您可能希望使用Set 而不是ArrayList,因为它存储了独特的元素。

          【讨论】:

            【解决方案6】:

            您需要使用Set 而不是List

            来自文档:-

            不包含重复元素的集合。更正式地说,集合 不包含元素对 e1 和 e2 使得 e1.equals(e2),并且在 最多一个空元素。正如它的名字所暗示的,这个接口模型 数学集合抽象。

            【讨论】:

              猜你喜欢
              • 2011-06-15
              • 2011-06-03
              • 1970-01-01
              • 2018-05-17
              • 2014-02-17
              • 2011-11-14
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多