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。
答案 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解决方案,只是先尝试这个修改