java8 两个List集合一个111222333另一个112122333 取出两个集合相同索引元素不同的元素
可以使用Java 8的Stream API来实现这个需求。首先,将两个List集合转换为Stream,然后使用IntStream.range(0, list1.size())生成一个索引范围的IntStream,接着使用filter方法过滤出索引位置上的元素不同的元素,最后使用mapToObj方法将结果转换为List。
以下是具体的代码示例:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 1, 1, 2, 2, 2, 3, 3, 3);
List<Integer> list2 = Arrays.asList(1, 1, 2, 1, 2, 2, 3, 3, 3);
List<Integer> result = IntStream.range(0, list1.size())
.filter(i -> !list1.get(i).equals(list2.get(i)))
.mapToObj(i -> list1.get(i))
.collect(Collectors.toList());
System.out.println(result); // 输出:[1, 1, 2]
}
}
运行以上代码将输出 [1, 1, 2],即两个集合相同索引位置上元素不同的元素
原文地址: https://www.cveoy.top/t/topic/ihen 著作权归作者所有。请勿转载和采集!