2015-11-10 101 views
3

我有,我想想写组不同的文件中的字符串,以及将其转换成的UUID,并将其存储另一个变量的字符串列表。 Java 8 lambda可以使用吗?是否有可能收集流分成两个收藏家

的原因,我问了两个收藏家是为了避免运行它第二个筋斗。

+2

也许[this](http://stackoverflow.com/a/30211021/2711488)很有帮助。 – Holger

+0

有趣的问题,但它听起来像不必要的优化,这将提供微不足道的性能改进(假定您正在写入文件),并大幅降低代码的可读性和可维护性。 –

+0

让我们不要考虑性能影响的意义,只是谈论是否以及如何可能......也许在这种情况下,但如果有两个昂贵的收集器操作,性能改进不会微不足道......另外,可读性是主观的。有人可能会说lambda不可读/可维护。 – Mulki

回答

1

正如@Holger注意到我写了一个pairing collector作为回答另一个问题,它汇集两个收集器。这种收集器现在可以在我的StreamEx库中获得:MoreCollectors.pairing。 jool库中的类似收集器也是available

+0

那么你是否说在这种情况下没有任何东西可用于Java 8 lambda。 – Mulki

+0

@穆尔基,是的,没有现成的解决方案来组合两个收藏家。那么,你可以简单地在单个'forEach()'里面做所有事情,并且带有副作用。 –