我有一组对象,我想将它们映射到另一个集合,对每个元素执行类似的例行操作。我想在并行线程中执行这些原子例程操作,并寻找一些可以帮助我的现成库:
Collection<X> source = // ...
Collection<Y> result = Threader.map(
source,
new Mapping<X, Y>() {
@Override
public Y map(X src) {
// do something and return an instance of Y
}
}
);
我知道它很容易实现,但我不想重新发明轮子。你知道任何包含Threader
类的库吗?
我认为Java 8 streams会做类似的事情......
我向Guava提交了一项功能请求:https://code.google.com/p/guava-libraries/issues/detail?id=1422
答案 0 :(得分:2)
functionaljava库可以做你想要的。它提供了自己的集合类型,可以转换为java.util.Collection或从java.util.Collection转换。集合类型具有可以为其提供自己的函数的映射操作,以及用于该映射的并发策略。关于在这里使用functionaljava进行并行列表处理的帖子很好:
http://apocalisp.wordpress.com/2008/06/30/parallel-list-transformations/