即如果 ArrayList 包含坐标 {0, 0} 则删除它们。
下面的代码测试按预期失败。
ArrayList<int[]> array = new ArrayList<>();
int[] arr1 = new int[]{0, 0};
int[] arr2 = new int[]{1, 1};
array.add(arr1);
array.add(arr2);
System.out.println("Before " + array.contains(arr1)); // true
int[] arr3 = new int[]{0, 0};
array.remove(arr3);
System.out.println("After " + array.contains(arr1)); //true
最佳答案
您可以像这样使用removeIf
:
array.removeIf(a-> a[0] == 0 && a[1] == 0);
或者您可以使用:
array.removeIf(a -> Arrays.equals(a, new int[]{0, 0}));
如果你想删除所有只包含零的数组,你可以使用:
array.removeIf(a -> Arrays.stream(a).allMatch(value -> value == 0));
编辑OP后,解决方案可以像这样:
array.removeIf(a -> Arrays.equals(a, arr3));
关于java - 如何从 ArrayList 中删除特定数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57781979/