gpt4 book ai didi

java - 使用 flatMap 连接列表

转载 作者:行者123 更新时间:2023-11-30 06:09:43 24 4
gpt4 key购买 nike

我正在阅读 Ricahrd Warburton 的一本 Java 8 书籍,他提供了以下练习:

try rewriting the following using method references:

[...]

The flatMap approach to concatenate lists

真不懂怎么申请flatMap这里。令我困惑的是,平面 map 用于映射 Stream 的每个元素。到另一个Stream然后将它们连接在一起以产生更大的 Stream但在这里我们必须分开List<T> .

public static <T> List<T> concat(List<T> lst1, List<T> lst2){
//lst1.stream().flatMap() - it maps each elements
//of lst1 to stream and concatenates it for each
//element
}

有什么想法吗?

最佳答案

出于练习的目的,想法是使用 Stream.of(...) 创建一个 Stream<List<T>>包含两个给定列表,并使用方法引用 List::stream 平面映射每个列表.这将使 Stream<List<T>> 变平进入Stream<T> .然后,您可以使用 Collectors.toList() 将所有元素收集到一个列表中。 :

public static <T> List<T> concat(List<T> lst1, List<T> lst2){
return Stream.of(lst1, lst2).flatMap(List::stream).collect(Collectors.toList());
}

关于java - 使用 flatMap 连接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37392474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com