如何排序<Integer,MyObject> map

gre*_*rep 10 java sorting hashmap

我有这样的地图:

Map<Integer, MyEntry> map = new HashMap<Integer, MyEntry>();
Run Code Online (Sandbox Code Playgroud)

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Jef*_*rey 15

对于按键排序,您可以使用SortedMap- 一个常见的实现是TreeMap.由于Integers具有自然的排序顺序,因此除了将它们放入a之外,您不需要做任何特殊的操作TreeMap

如果你想按值排序,这个问题中描述了几种技术按值排序地图<键,值>(Java)


MSA*_*MSA 8

如果要排序,可以使用2种类型的LinkedHashMap,或者最常用的是TreeaMap.

Map<Integer, MyEntry> map = new LinkedHashMap<Integer, MyEntry>();
Run Code Online (Sandbox Code Playgroud)

要么

Map<Integer, MyEntry> map = new TreeMap<Integer, MyEntry>();
Run Code Online (Sandbox Code Playgroud)

并添加一些小样本,您可以使用此代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

一些有用的:

使用TreeMap示例排序

另一个有用的排序示例

干杯,