Java 8 Stream API:多个原始映射与一个复杂映射

时间:2015-10-15 12:43:57

标签: java optimization lambda java-8 java-stream

我的问题与此问题非常相似:Java 8 Streams: multiple filters vs. complex condition

无论如何,这不是重复,因为map和filter的内部结构非常不同。虽然过滤器会随着时间的推移减少元素的数量,但需要不同的理由来确定哪种方法最佳。

问题仍然相同:以下哪两种方法更有效?或者它实际上是一样的,所以我可以通过可读性来决定?

方法1:

Collection<Bar> in = ...;
Collection<Baz> out = in.stream().map(FooUtil::fromBar).map(BazUtil::fromFoo).collect(Collectors.toSet());

方法2:

Collection<Bar> in = ...;
Collection<Baz> out = in.stream().map(bar -> BazUtil.fromFoo(FooUtil.fromBar(bar))).collect(Collectors.toSet());

编辑:这只是一个包含两个步骤的示例。在我的实际用例中,我还有一些步骤。

编辑2:正如评论中所讨论的,基本上没有区别。因此,我选择了更好的可读选项。如果有人偶然发现这个问题,请在链接的问题中继续阅读,因为可以应用相同的答案。因此,我现在要将我的问题视为重复。

0 个答案:

没有答案