我们能否从Java 8流中收集两个列表?

bluesky1年前 ⋅ 264 阅读

ChatGPT的回答仅作参考:

是的,可以从Java 8流中收集两个列表。您可以使用`Collectors.partitioningBy()`方法将流中的元素分成两个部分,并将它们分别收集到两个列表中。以下是一个示例:

```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Map<Boolean, List<Integer>> evenAndOddNumbers = numbers.stream()
        .collect(Collectors.partitioningBy(n -> n % 2 == 0));

List<Integer> evenNumbers = evenAndOddNumbers.get(true);
List<Integer> oddNumbers = evenAndOddNumbers.get(false);

System.out.println("Even numbers: " + evenNumbers);
System.out.println("Odd numbers: " + oddNumbers);
```

输出结果:

```
Even numbers: [2, 4, 6, 8, 10]
Odd numbers: [1, 3, 5, 7, 9]
```

在上面的示例中,我们将数字列表分成了两个部分:偶数和奇数。然后,我们从`evenAndOddNumbers`映射中获取了两个列表,并打印出来。

全部评论: 0

    相关推荐