( ((Supplier>) () -> -6ren">
gpt4 book ai didi

java - Java(8)中是否有类似于Haskell中的 "let"或 "where"的东西

转载 作者:行者123 更新时间:2023-11-30 02:51:02 25 4
gpt4 key购买 nike

虽然工作正常,但还是有点过头了。创建不同列表时,防止在 distinct 范围内声明 set

List<String> distinct = new ArrayList<>( ((Supplier<Set<String>>) () -> {
Set<String> set = new HashSet<>();
for (D d : aHierarchicClassStructure) for (T t : d) for (U u : t)
set.addAll(u.getSomething());
return set;
}).get());

最佳答案

List<String> distinct = aHierarchicClassStructure.stream()
.flatMap((t) -> t.stream())
.flatMap((u) -> u.stream())
.distinct()
.collect(Collectors.toList())

您可以使用方法引用,因此 (t) -> t.stream 将变为 Collection::stream()List::stream() 如果您的数据结构是列表。

关于java - Java(8)中是否有类似于Haskell中的 "let"或 "where"的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653217/

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