java - 如何从 ArrayList 中删除特定数组

标签 java arraylist

即如果 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/

相关文章:

java - 我想从 ListView 中选择用户名文本字段并使用该用户名删除 mysql 数据库中存在的数据

java - 如何在运行时加载 .class 文件以与 JUnitCore.runclasses() 一起使用

java - 在 Jython 中创建 ArrayList 的 ArrayList

android - 微调器不显示所选值

java - 为什么我收到错误 'Operation not allowed after ResultSet closed' ?

java - 进程内 ActiveMQ 生产者/消费者示例?

java - 纯 HTTP GET 和 POST 通信的安全数据序列化

java - 如何按角色限制对 Spring Data REST 投影的访问?

android - ListView 多选问题?

java - 比较两个 ArrayList(无论顺序如何) - Java