Java data structure sorted by key
我试图将整数存储在一个数据结构中,以String作为键,
im存储的一个例子是:
1 2
| key:"Name1", Int: 123
key:"Name2", Int: 124 |
我希望能够插入条目,以便按字母顺序排序,以便于打印到屏幕。
到目前为止我一直在使用:
1 2 3 4 5 6 7 8 9 10
| 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 ));
} |
此输出:
为什么这些不按字母顺序排列?
是否有我应该知道的字典替代方案?
-
你正在寻找一个TreeMap
-
Java Ordered Map的可能重复
除非另有说明,否则map / hashmaps / hashtables / dictionaries / etc. 没有任何已定义的排序顺序。 TreeMap应该适合您的目的; 它实现了SortedMap接口。
也就是说,我不一定相信你应该选择数据结构只是因为它使打印更容易。
附注:Dictionary和Hashtable是遗留类,主要用于向后兼容。 对于通用键值数据结构,新代码通常应优先选择Map和HashMap。
-
您应该提到SortedMap和NavigableMap接口,它们指定了排序。
-
@ ChrisJester-Young完成了。
-
打印不是唯一的原因,我需要它来覆盖重复的条目,我相当确定大多数地图都这样做
-
@clairharrison更正 - Map的任何正确实现都将禁止重复密钥。