一次将函数应用于所有元素而不是每个元素?

时间:2013-05-10 19:21:24

标签: java guava

我需要像FluentIterable.transformAndConcat这样的东西,但是我的FluentIterable中的所有元素都只调用一次transform函数(所以FluentIterable的所有元素都应该立即传递给我的函数)而不是每个单元一次元件。

番石榴有这个案子,我错过了吗?

感谢任何提示!

2 个答案:

答案 0 :(得分:3)

在我看来,你想要改变的不是单个元素,而是集合本身。如果您有Function<X,Y>,则可以使用此方法将Collection<X>转换为Collection<Y>

您所拥有的是Function<Collection<X>, Collection<Y>>,只需使用Function.apply在您的收藏中调用它,然后对其进行迭代。

答案 1 :(得分:1)

尝试使用Observer模式,它充当监听器,

您的对象是侦听器,然后当您需要触发和事件时,所有对象都会执行您想要的方法。

我担心当您触发该事件时,必须有一个循环通知您的对象,首先尝试理解这种模式,以便它符合您的需要。

干杯