gpt4 book ai didi

java - 是否值得将 distinct() 与 collect(toSet()) 一起使用

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:45 26 4
gpt4 key购买 nike

将流的元素收集到集合中时,在流上指定 .distinct() 是否有任何优点(或缺点)?例如:

return items.stream().map(...).distinct().collect(toSet());

鉴于该集合已经删除了重复项,这似乎是多余的,但它是否提供了任何性能优势或劣势?答案是否取决于流是并行/顺序还是有序/无序?

最佳答案

根据javadoc , distinct 是一个有状态的中间操作。

如果您确实有 .distinct 紧跟 .collect,它实际上并没有增加任何好处。也许如果 .distinct 实现比 Set 重复检查更高效,你可能会得到一些好处,但如果你收集到一个集合,你将结束无论如何都会得到相同的结果。

另一方面,如果 .distinct 发生在您的 .map 操作之前,并且该特定映射是一项昂贵的操作,您可能会在那里获得一些 yield ,因为您'总体上处理的数据较少。

关于java - 是否值得将 distinct() 与 collect(toSet()) 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593538/

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