分类: Java
2008-03-24 08:44:49
作者 Bryan Clauser and Scott Delap译者 张凯峰 发布于 2007年10月14日 上午9时50分
虽然有时认为是理所当然,但Java Collections API无疑在每天的Java软件开发中扮演着重要的角色。然而API和相关的项目从未停止过发展。Alex Miller提到了Java 6中API的变化:
- 一个名为 (发音“deck”)的双头队列接口,以及对应的并发接口BlockingDeque ,实现类包括 和LinkedBlockingDeque 。
- 名叫 和的用于排序set和map的新改进接口,以及一些像TreeSet和TreeMap那样的实现类。
- 用于并发和排序的新组合的接口:ConcurrentNavigableSet 和ConcurrentNavigableMap 。加上两个新的并发排序实现类名为ConcurrentSkipListSet和ConcurrentSkipListMap。
其中尤其引发他兴趣的是,它不像许多普通的CS数据接口,相对来说是个新的重新:
skip列表是个概率性的的数据结构,由William Pugh在1990年发明,列表基于平行的链接列表,效率相对二叉搜索树(对于大多数操作平均需要O(log n)时间)有显著改善。Google也一直致力于collections领域的工作,并发布了一套建立于标准的 的实现类。虽然还是 ,但Google已经把它们使用在自己的许多服务中,比如GMail,Reader和Blogger。除了专注于为既有的Java Collections Framework增加复杂性和灵活性以外,Google也添加了许多的collections和工具类来使得编码变得更简单并提高代码可读性。
其中最值得注意的collection是: