按键排序的Java数据结构

时间:2013-06-22 19:24:15

标签: java sorting data-structures

我试图将整数存储在一个以String为键的数据结构中, im存储的一个例子是:

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

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

1 个答案:

答案 0 :(得分:4)

除非另有说明,否则map / hashmaps / hashtables / dictionaries / etc.没有任何定义的排序顺序。 TreeMap<String, Integer>应该适用于您的目的;它实现了SortedMap<K, V>接口。

尽管如此,我并不一定相信您应该选择数据结构只是因为它使打印更容易。


附注:DictionaryHashtable是遗留类,主要用于向后兼容。对于通用键值数据结构,新代码通常更喜欢MapHashMap