Apache Commons与Guava(以前称为“Google Collections”)

问题:

我在Java中寻找一个bidirectional map实现,并绊倒了这两个库:

两者都是免费的,我正在寻找的双向地图实现(Apache中的BidiMap,Google中的BiMap),令人惊讶的是几乎相同的大小(Apache 493 kB,Google 499 kB)[ed:不再是真的!在所有方面与我非常相似。
我应该选择哪一个,为什么?还有其他一些等效的选择(必须是免费的,至少有双向地图)?我正在使用最新的Java SE,所以不需要人为地限制Java 5或任何类似的东西。

回答:

在我看来,更好的选择是Guava(以前称为Google收藏):

  • 它更现代(有仿制药)
  • 它完全遵循Collections API要求
  • 它被积极维护
  •  CacheBuilder,而它的前身MapMaker只是很棒

Apache Commons Collections也是一个很好的库,但是它长期以来一直未能提供泛型启用版本(这是我认为的集合API的major缺点),并且通常似乎在维护/不要-do-too-work-on-it模式Recently Commons Collections has picked up some steam again, but it has some catching up to do.
如果下载大小/内存占用/代码大小是一个问题,那么Apache Commons Collections可能是更好的候选者,因为它是其他库的常见依赖。因此,在您自己的代码中使用它也可以在不添加任何附加依赖性的情况下完成。编辑:这个特殊的“优势”已被部分颠覆了,因为许多新的图书馆实际上依赖于Guava和Apache Commons Collections的not

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Apache Commons vs. Guava (formerly “Google Collections”)

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 65 = 70