我的问题与此问题非常相似: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:正如评论中所讨论的,基本上没有区别。因此,我选择了更好的可读选项。如果有人偶然发现这个问题,请在链接的问题中继续阅读,因为可以应用相同的答案。因此,我现在要将我的问题视为重复。