-2

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

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

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

4

6 回答 6

6

您需要使用 aSet而不是 a List

来自文档:-

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

于 2013-03-20T07:57:34.243 回答
2

您可能喜欢使用Set而不是ArrayList因为它存储独特的元素。

于 2013-03-20T07:58:41.113 回答
1

包含

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

于 2013-03-20T09:20:38.283 回答
1
ArrayList<String> values = ... //Your values
HashSet<String> uniqueValues = new HashSet<>(values);
for (String value : uniqueValues) {
   ... //Do something
}
于 2013-03-20T08:04:15.910 回答
1

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

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

于 2013-03-20T08:05:58.027 回答
1

为什么要使用arraylist?使用集。

或者,如果您想知道是否有任何重复项,请使用 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;
}
于 2013-03-20T07:57:59.970 回答