我有这样的地图:
Map<Integer, MyEntry> map = new HashMap<Integer, MyEntry>();
MyEntry是:
public class MyEntry {
private String title;
private String value;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
将值放入地图后,我想对其进行排序。第一个元素是最小的,最后一个元素是最大的。
答案 0 :(得分:15)
按键排序,您可以使用SortedMap
- 一个常见的实现是TreeMap
。由于整数具有自然的排序顺序,除了将它们放入TreeMap
如果您想按值排序,可以使用此问题中描述的几种技术Sort a Map<Key, Value> by values (Java)
答案 1 :(得分:8)
如果要排序,可以使用2种 LinkedHashMap ,或者最常用的是 TreeaMap 。
Map<Integer, MyEntry> map = new LinkedHashMap<Integer, MyEntry>();
OR
Map<Integer, MyEntry> map = new TreeMap<Integer, MyEntry>();
要添加一些小样本,您可以使用以下代码:
Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(1, "one");
map.put(3, "three");
map.put(2, "two");
// prints one two three
for(Integer key : map.keySet()) {
System.out.println(map.get(key);
}
一些有用的:
干杯,
答案 2 :(得分:3)
HashMap
排序map
后,keys
不保证订单。如果您想按{{1}}对地图进行排序,请使用TreeMap。