Nav*_*ath 6 java sorting collections hashmap
有一节课
class Employee {
int id;
String name;
}
Run Code Online (Sandbox Code Playgroud)
和一个包含此对象的地图
Map<Integer, Employee> map = new HashMap<Integer, Employee>();
Run Code Online (Sandbox Code Playgroud)
现在我想在map
一个基础之上排序Employee's name
.意味着当我使用迭代此地图时Map.Entry
,Employee
对象必须按字母顺序返回.
提前致谢
Micha\xc3\xabl 建议了一个链接,即Sort a Map<Key, Value> by values (Java)。我对它做了一些改变。这对我有用
\n\nclass ValueComparator implements Comparator<Integer> {\n\n Map<Integer, Employee> base;\n public ValueComparator(Map<Integer, Employee> base) {\n this.base = base;\n }\n\n // Note: this comparator imposes orderings that are inconsistent with equals. \n public int compare(Integer a, Integer b) {\n return ((Employee)base.get(a)).compareTo(base.get(b));\n }\n\n}\n\nclass Employee implements Comparable {\n public String name;\n public int id;\n\n Employee(int id, String name) {\n this.id = id;\n this.name = name;\n }\n\n @Override\n public int compareTo(Object obj) {\n return this.name.compareTo(((Employee)obj).name);\n }\n\n public String toString() {\n return name;\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n有关解决方案,请也参考上面提到的链接。
\n\n感谢所有回复的人。
\n