如何排序<integer,myobject =“”> map </integer,>

时间:2013-08-25 17:14:39

标签: java sorting hashmap

我有这样的地图:

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;
    }
}

将值放入地图后,我想对其进行排序。第一个元素是最小的,最后一个元素是最大的。

3 个答案:

答案 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);
}

一些有用的:

Sort using TreeMap Example

Another usefull sort example

干杯,

答案 2 :(得分:3)

HashMap排序map后,keys不保证订单。如果您想按{{1}}对地图进行排序,请使用TreeMap

这可能会有所帮助:Order HashMap<String,Integer> according Integer