本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.Map.Entry方法
把Map.Entry放进list,再用Comparator对list进行排序
Listlist=newArrayList(map.entrySet());
Collections.sort(list,(Entrye1,Entrye2)->{
returne1.getKey().compareTo(e2.getKey());
});
实例代码:
publicclassSortKeysMapTest{
publicstaticvoidmain(String[]args){
Map<String,String>map=newHashMap<>();
map.put("2010","jay");
map.put("1999","whx");
map.put("3010","huaxiao");
List<Map.Entry<String,String>>list=newArrayList<>(map.entrySet());
Collections.sort(list,(Map.Entrye1,Map.Entrye2)->{
returne1.getKey().toString().compareTo(e2.getKey().toString());
});
for(Map.Entryentry:list){
System.out.println("key:"+entry.getKey()+",value:"+entry.getValue());
}
}
}
2.TreeMap
TreeMap默认是升序的,如果我们需要改变排序方式,则需要使用比较器:Comparator。Comparator可以对集合对象或者数组进行排序的比较器接口,实现该接口的public compare(T o1,To2)方法即可实现排序,如下:
importjava.util.Comparator;
importjava.util.Iterator;
importjava.util.Map;
importjava.util.Set;
importjava.util.TreeMap;
publicclassTreeMapTest{
publicstaticvoidmain(String[]args){
Map<String,String>map=newTreeMap<String,String>(
newComparator<String>(){
publicintcompare(Stringobj1,Stringobj2){
//降序排序
returnobj2.compareTo(obj1);
}
});
map.put("b","ccccc");
map.put("d","aaaaa");
map.put("c","bbbbb");
map.put("a","ddddd");
Set<String>keySet=map.keySet();
Iterator<String>iter=keySet.iterator();
while(iter.hasNext()){
Stringkey=iter.next();
System.out.println(key+":"+map.get(key));
}
}
}
运行结果如下:
d:aaaaa c:bbbbb b:ccccc a:ddddd
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















































暂无评论内容