我继承了团队和(Java)代码库。
代码库使用了许多显式for each
循环。我想用Commons Collections Transformers和Predicates及其收集和转换方法替换那些(编辑:在将来的代码中)。
但是,Commons Collection不是通用的。我的代码库的其余部分,无论它缺少什么,都是,而且我不想引入大量的代码。
所以我正在观看Commons-Collections with Generics(http://sourceforge.net/projects/collections/)和Guava(以前的Google Collections)(http://code.google.com/p/番石榴库/).
问题一:是否一般或两者都被认为是安全的生产用途?你在生产中使用过吗?
问题二:两者中,你推荐哪一个?任何使用过两者的人的答案都很棒,任何使用过两者的人的答案都会更好!
最后,我的团队包括中高层的承包商,以及Java中级和初级的员工(编辑:但具有多年的非OO编程经验)。所以我不想引入多个集合库,我确实想要一个对我的团队来说都不会太难用的集合库。
谢谢!
编辑:我想替换显式循环,因为样板的数量模糊并压倒了实际的业务代码。我有嵌套循环调用具有嵌套循环的函数,所有这些都是单行的。通过适当的介绍和培训,我觉得我的团队会发现Collections / Transformer / Predicate方法更清晰,更清晰,写作更快,更易于阅读。
答案 0 :(得分:4)
我在制作中使用Google系列并且从未出现过问题。让你希望java有函数指针,但他的设计经过深思熟虑。即使像Lists.newArrayList这样的小东西也成为了新的列表的标准方式。
答案 1 :(得分:2)
您似乎不是在寻找一个Collection库,而是一个以函数方式处理现有集合的库。
我自己编写了这样一个库,但它不是开源的(它只在我公司内部使用),它可能不是最好的设计。
具有相同目标的图书馆看起来很有希望:lambdaj。我自己没有用过它,但是如果我知道lambdaj存在的话,我想我不会写我的库。
答案 2 :(得分:2)
我建议你先看看lambdaj。在这里,您可以找到主要功能的概述:http://code.google.com/p/lambdaj/wiki/LambdajFeatures