技术开发 频道

Google pk Apache:谁的集合库更酷



三、Google的集合库真的完美吗?
    Google的集合库虽然很强大,但是在其中也有不足的地方,如以下的功能在Apache的集合库有,但在Google的集合库中就没有:
1. org.apache.commons.collections.keyvalue.MultiKey:这个类允许我们使用多个值建立一个key。
2. org.apache.commons.collection.buffer:这个类为从集合中删除一个对象定义了一个契约。根据Buffer接口的文档,“从集合中删除对象的顺序可以基于插入的顺序(如FIFO队列或是LIFO栈),访问顺序(如一个LRU缓冲),任何的Comparator的顺序(如一个优先队列)或是任何其他明确定义的顺序”。
3. org.apache.commons.collections.functors:这个类并没有什么特殊的功能,只是当Predicate evaluate方法返回true时调用。

    除了上述的三个在Google的集合库中未发现的功能外,还有FixedSizeList、LazyList以及一些其他特殊的list类型类,如FixedSizeMap、Flat3Map、LazyMap、LRUMap以及ListOrderedSet。

四、我们到底该选哪个集合库
    虽然Google已经在它的GMail、Google Reader和Blogger中大量使用了这套集合库,但它现在仍然未正式发行(版本号为0.5)。从这个版本号来看,Google的集合库仍然是Alpha版本。目前它的功能只有85%经过了测试。
    现在我们已经知道Google的集合库和Apache的公共集合库的区别了。如果我们不是必须使用JDK5的泛型功能,那么Apache的集合库将是最好的选择,因为它要比Google的这套库更成熟。但在我各人看来,我更喜欢Google的集合库中提供新特性的类和包,这些东西使更容易学习和使用。如果Apache的集合库可以跟上时代的步伐,继续加入JDK5以及JDK的后续版本功能,那么Apache的集合库也许会更耀眼。
 
0
相关文章