我有一个 ArrayList 演员。当我打印这个演员变量时,我得到这样的输出:
公羊,板球,公羊,国际象棋
我只想取一个“Ram”而不是重复。
您需要使用 aSet
而不是 a List
。
来自文档:-
不包含重复元素的集合。更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals(e2),并且最多包含一个空元素。正如它的名字所暗示的,这个接口模拟了数学集合抽象。
您可能喜欢使用Set
而不是ArrayList
因为它存储独特的元素。
这是用于 java 文档的数组列表中可用的方法。
ArrayList<String> values = ... //Your values
HashSet<String> uniqueValues = new HashSet<>(values);
for (String value : uniqueValues) {
... //Do something
}
你应该使用一个集合。具体来说,如果顺序无关紧要,我建议使用 HashSet,如果要保留到达顺序,我建议使用 LinkedHashSet。
如果出于其他原因确实需要 ArrayList,则可以通过复制到 LinkedHashSet 来删除重复项,然后再返回。这可能比排序和测试更快。
为什么要使用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;
}