如何从ArrayList中删除重复项?

时间:2013-09-01 00:23:52

标签: java arraylist

for (int i = 0; i < arrayP.size(); i++) {

        if (arrayP.get(i) == What to put here?) {
              arrayP.remove(i)
        }
}

如果我放i+1它只是并排比较。我怎样才能让它贯穿每个元素?

元素1然后遍历整个ArrayList。然后元素2通过ArrayList。

2 个答案:

答案 0 :(得分:7)

您可以使用LinkedHashSet

list = new ArrayList<>(new LinkedHashSet<>(list));

如果元素的顺序无关紧要,则应使用普通HashSet。事实上,如果这样做符合逻辑,您可能会考虑首先使用Set而不是List。阅读两者之间的差异,选择更合适的结构。

答案 1 :(得分:0)

试试这个

Set arrayPSet = new LinkedHashSet(arrayP);

现在arrayPSet保存你的数组,删除它的重复值,然后就可以使用它了 再次将您的列表重新分配给此集,例如

arrayP = new ArrayList(arrayPSet);

现在重复删除

如果arrayP列表包含由您创建的对象,请确保覆盖equals()和hashCode()方法

好吧,我更新了它也许这个工作,我没有尝试订单问题,但有TreeSet / Comparators / Comparables解决方案,只是先尝试​​这个修改