我试图将整数存储在一个以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
为什么这些不按字母顺序排列? 是否有我应该知道的词典替代?
答案 0 :(得分:4)
除非另有说明,否则map / hashmaps / hashtables / dictionaries / etc.没有任何定义的排序顺序。 TreeMap<String, Integer>
应该适用于您的目的;它实现了SortedMap<K, V>
接口。
尽管如此,我并不一定相信您应该选择数据结构只是因为它使打印更容易。
附注:Dictionary
和Hashtable
是遗留类,主要用于向后兼容。对于通用键值数据结构,新代码通常更喜欢Map
和HashMap
。