gpt4 book ai didi

java - 性能差异: map() vs peek() with setters

转载 作者:行者123 更新时间:2023-12-02 01:20:55 26 4
gpt4 key购买 nike

我想知道以下两种情况是否有任何性能差异 - peek() 与带有 return 的 map():

Set<Item> convertedItems = items
.stream()
.filter(item -> ItemType.POSTER.equals(item.getType()))
.peek(item -> item.setType(ItemType.LOGO))
.collect(toSet());

Set<Item> convertedItems = items
.stream()
.filter(item -> ItemType.POSTER.equals(item.getType()))
.map(item -> {
iitem.setType(ItemType.LOGO);
return item;
})
.collect(toSet());

我在 stackoverflow 上阅读了几篇关于 map() 与 peek() 中 setter 的文章,但我只找到了一个有关性能的信息。它说带有 return 的 map() 会更糟,但没有解释原因: How to call setter in chain of Stream

最佳答案

它并不能完全回答您的问题,但 forEach 可能更明智。因为我认为 peekmap 都不是您所需要的。

请注意,peek 用于调试,来源:https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#peek-java.util.function.Consumer-

我认为下面的代码可能更优化:

items.forEach(s -> s.setTitle("second"));

关于java - 性能差异: map() vs peek() with setters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712877/

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