J2SE 1.4 为 Java Collections Framework 引入了两个新实现, LinkedHashSet 和 LinkedHashMap 。添加这两个新实现的好处是散列集合现在可以维护贯穿其元素的两条路径。除标准的散列关系之外,现在还有一个可遍历整个集合的链表。正常情况下,这个新的第二路径会遵循插入顺序,这意味着集合的迭代器将按照元素的插入顺序返回元素(而不按它们的散列码将其组合成一个集合的顺序),但 LinkedHashMap 支持第二种排序选项:按存取顺序而非插入顺序维护链表。
我们来看一下这些新类是如何工作的。
开始
开始使用这些新类非常容易。 只需导入 java.util 包并找到一组要使用的项目。在我们的示例中,我们将使用日历表的月份。在使用集时我们将使用英语月份名称,在使用映射表时用英语和意大利语的月份名称。
清单 1. 开始定义类
import java.util.*;
public class OrderedAccess {
public static void main(String args[]) {
String months[] =
new DateFormatSymbols().getMonths();
String italianMonths[] =
new DateFormatSymbols(Locale.ITALIAN).getMonths();
}
}
我将假定您已经知道了英语月份的名称和顺序。对于那些不熟悉意大利语月份名称的人们,它们是:Gennaio、Febbraio、Marzo、Aprile、Maggio、Giugno、Luglio、Agosto、Settembre、Ottobre、Novembre 和 Dicembre, 虽然由于某些原因 getMonths() 返回的名称不是大写的。
使用新 HashSet
LinkedHashSet 是基本 HashSet 类的一个子类。因此, 凡是 HashSet 能做的工作, LinkedHashSet 也能做到。 类中没有新方法。您能得到的只有 4 个构造函数:
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!