使用Java 8流比较两个列表中相同位置的元素

问题描述 投票:0回答:1

我有两个列表,我想将列表1的每个元素与列表2进行比较,并在列表3中获得结果,例如

List1 = {99,22,33}

list2 = {11,24,33}

结果:

list3 = {1,-1,0}

我如何最好使用流来做到这一点?

java list stream
1个回答
1
投票

尝试这样:

用比较结果替换用于索引每个列表的ints流。然后将它们收集到列表中。

        List<Integer> list1 = List.of(99, 22, 33);
        List<Integer> list2 = List.of(11, 24, 33);
        List<Integer> result = IntStream.range(0, list1.size())
                .map(i -> list1.get(i).compareTo(list2.get(i)))
                .boxed().collect(Collectors.toList());

        System.out.println(result);

打印

[1, -1, 0]
© www.soinside.com 2019 - 2024. All rights reserved.