gpt4 book ai didi

Java 8 流、groupBy 和方法调用

转载 作者:行者123 更新时间:2023-12-01 22:33:42 27 4
gpt4 key购买 nike

我有以下代码:

ConcurrentMap<String, Zipper> zippers = list.parallelStream()
.map( f -> {return new Facet( f ) ; } )
.collect(
Collectors.groupingByConcurrent( Facet::getZip,
Collector.of( Zipper::new,
Zipper::accept,
(a,b)-> {a.combine(b); return a; } )
)) ;

for ( String key: zippers.keySet() )
{
zippers.get( key ).zip() ;
}

鉴于我只需要 Zipper 对象来调用它们的 zip() 方法,有没有办法在创建每个对象之后调用此方法作为流的一部分(并立即丢弃这些对象)在对它们调用 zip() 方法之后)而不是首先创建 map ?

最佳答案

您可能需要使用整理器的 4 参数 Collector#of

请注意f -> {return new Facet(f); } 可以写成 Facet::new

ConcurrentMap<String, Zipper> zippers = list.parallelStream()
.map(Facet::new)
.collect(
Collectors.groupingByConcurrent(
Facet::getZip,
Collector.of( Zipper::new,
Zipper::accept,
(a,b)-> {a.combine(b); return a; },
z -> {z.zip(); return z;}
)
)
);

关于Java 8 流、groupBy 和方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195089/

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