2
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。

4

2 回答 2

7

您可以使用LinkedHashSet

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

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

于 2013-09-01T00:27:49.533 回答
0

尝试这个

Set arrayPSet = new LinkedHashSet(arrayP);

现在 arrayPSet 保存你的数组,删除它的重复值,然后你可以使用它,你可以再次将你的列表重新分配给这个集合,比如

arrayP = new ArrayList(arrayPSet);

现在重复被删除

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

好的,我更新了它也许这行得通,我没有尝试订单问题,但是有 TreeSet/Comparators/Comparables 解决方案,请先尝试此修改

于 2013-09-01T00:29:02.580 回答