假设我有一个这样的列表 A:
line value
0 Object0
1 Object1
2 Object2
3 Object3
4 Object4
5 Object5
现在,我有另一个列表 B,其中包含 [0,2,3]
(仅 Integer
),它基本上包含我已经查看过的对象的索引.
我想获取列表C(它是索引[0,1,2,3,4,5]-[0,2,3]=[1,4,5]
):
line value
1 Object1
4 Object4
5 Object5
顺便说一句:我需要原始列表保持不变。
我可以创建索引列表,然后删除 B 列表以获取 C 列表,但是有没有一种简单有效的方法来直接获取对象?
最佳答案
使用流很容易解决,例如:
List<Object> listC = IntStream.range(0, listA.size())
.filter(n -> !listB.contains(n))
.mapToObj(n -> listA.get(n))
.collect(Collectors.toList());
listA
和 listB
保持原样
关于java - 带索引的列表减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053648/