我有一个ArrayList演员。当我打印这个actor变量时,我得到一个像这样的输出:
拉姆,板球,拉姆,国际象棋我只想只拿一个“Ram”而不是重复。
答案 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)
这是数组列表中提供的方法,适用于java docs。