本教程操作环境: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
暂无评论内容