DaVinChi Asked:2022-08-23 20:09:52 +0800 CST2022-08-23 20:09:52 +0800 CST 2022-08-23 20:09:52 +0800 CST 从 Stream<List<Integer>> 到 List<Integer> 772 我该怎么Stream<List<Integer>>做List<Integer>。也就是说,我想从一个列表中的流中的所有列表中收集每个元素。 java коллекции 2 个回答 Voted Best Answer DronDron 2022-08-23T22:35:25+08:002022-08-23T22:35:25+08:00 你可以按照作者的建议去做。不过,还有一种更常用的方式——flatMap()(至少这个方法是为此而生的) 下面是一个代码示例: List<Integer> integers1 = new ArrayList<>(List.of(1, 2, 3)); List<Integer> integers2 = new ArrayList<>(List.of(4, 5, 6)); List<Integer> integers3 = new ArrayList<>(List.of(7, 8, 9)); List<Integer> list = Stream.of(integers1, integers2, integers3) .flatMap(Collection::stream) .collect(Collectors.toList()); System.out.println(Arrays.toString(list.toArray())); // [1, 2, 3, 4, 5, 6, 7, 8, 9] DaVinChi 2022-08-23T21:23:05+08:002022-08-23T21:23:05+08:00 在 reduce 方法的帮助下,可以将流的所有列表相加。 Stream<List<Integer>> strm = ...; List<Integer> l = strm.reduce((left, right) -> { left.addAll(right); return left; }.get();
你可以按照作者的建议去做。不过,还有一种更常用的方式——flatMap()(至少这个方法是为此而生的)
下面是一个代码示例:
在 reduce 方法的帮助下,可以将流的所有列表相加。