1

我正在尝试将整数存储在以字符串为键的数据结构中,这是我存储的一个示例:

key: "Name1", Int: 123
key: "Name2", Int: 124

我希望能够插入条目,以便它们按字母顺序排列,以便于打印到屏幕上。

到目前为止,我一直在使用:

Dictionary<String,Integer> x = new Hashtable<String,Integer>();
x.put("Name1",123);
x.put("Name2",124);

Enumeration<String> e;
String key;
for(e=x.keys(); e.hasMoreElements();){
    key=e.nextElement();
    System.out.println(key + ": " + x.get(key));
}

这输出:

Name2: 124
Name1: 123

为什么这些不是按字母顺序排列的?有没有我应该知道的字典的替代品?

4

1 回答 1

4

除非另有说明,maps/hashmaps/hashtables/dictionaries/etc. 没有任何定义的排序顺序。ATreeMap<String, Integer>应该为您的目的工作;它实现了SortedMap<K, V>接口。

也就是说,我不一定相信您应该仅仅因为它使打印更容易而选择数据结构。


旁注:Dictionary并且Hashtable是主要为了向后兼容而存在的遗留类。新代码通常应该首选通用键值数据结构MapHashMap

于 2013-06-22T19:26:02.960 回答