【问题标题】:Remove an entry from a List<int[]> based on the value of of a specific index [duplicate]根据特定索引的值从 List<int[]> 中删除一个条目 [重复]
【发布时间】:2020-03-17 04:35:11
【问题描述】:

我有一个ints 列表,如下所示:

1318 1065 0
1392 1109 0
1522 1114 2
1764 1134 0
1643 1172 0
1611 1141 0
1608 1142 4
1689 1180 0
1546 1144 0
1811 1121 1
1682 1144 0
1687 1203 0
1751 1138 0
1702 1227 0

我的目标是保留第三个元素为 0 的条目。

我尝试了一些方法,例如:

for( int i=0; i<data_fin.size();i++) {
    data_fin.removeIf(s -> !((data_fin.get(i)[2]) == 0));
}

我收到错误“我在封闭范围中定义的局部变量必须是最终的或有效的最终”。

谁能帮我理解我做错了什么?我对 Java 很陌生,我可能使用了 removeif 错误,所以我将不胜感激!

【问题讨论】:

  • 是二维数组整数还是什么?
  • 你为什么还要在这里循环使用removeIf

标签: java java-8 int remove-if


【解决方案1】:

我的目标是 keep 仅输入第三个元素为 0 的条目

你不需要循环,你只需要:

data_fin.removeIf(a -> a[2] != 0);

【讨论】:

  • 比我想象的要容易得多。对Java还不是很熟悉。非常感谢!!
猜你喜欢
  • 2021-08-03
  • 2016-07-02
  • 2019-03-24
  • 2020-03-25
  • 2012-03-07
  • 1970-01-01
  • 2014-03-14
  • 2012-09-28
相关资源
最近更新 更多