java - 带索引的列表减法

标签 java list loops set-difference

假设我有一个这样的列表 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());

listAlistB 保持原样

关于java - 带索引的列表减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053648/

相关文章:

用于读取文本的java代码

list - 从 Prolog 中的列表中删除前 N 个元素

r - 在同一页面上绘制多个 ggplot2

java - Android 中的致命异常 : Thread-92 (java. util.ConcurrentModificationException)

JavaMail - 如何设置与 DATA 中的 “RCPT TO:” header 不匹配的 SMTP “To:”

python - 如何比较包含整数的列表 A 和列表 B 并打印缺少的整数?

c# - 从 Parse.com 获取所有对象 C# (Unity)

通过 PPM 在 C 中创建标志

java - 对于错误的配置抛出未经检查的异常是一个好主意吗?

python - 从整数列表中过滤最多 20 个值