可以使用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],即两个集合相同索引位置上元素不同的元素

java8 两个List集合一个111222333另一个112122333 取出两个集合相同索引元素不同的元素

原文地址: https://www.cveoy.top/t/topic/ihen 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录