1、TreeMap排序
TreeMap在构造过程中默认是按照Key升序排列,也可以自定义比较器
代码示例
public static void main(String[] args)
{
TreeMap<String, String> treeMap = new TreeMap<String,String>();
treeMap.put("aa", "1");
treeMap.put("cc", "2");
treeMap.put("dd", "3");
treeMap.put("bb", "4");
for(Entry<String, String> entry: treeMap.entrySet()){
System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
}
}
输出结果
key=aa,value=1
key=bb,value=4
key=cc,value=2
key=dd,value=3
2、HashMap排序
HashMap默认是无序的,如果想要排序的可以借助集合+Comparator实现
代码示例
public static void main(String[] args) throws ParseException
{
Map<String, String> hashM = new HashMap<String,String>();
hashM.put("aa", "1");
hashM.put("cc", "4");
hashM.put("bb", "2");
hashM.put("dd", "3");
List<Entry<String,String>> entryList = new ArrayList<Entry<String,String>>(hashM.entrySet());
System.out.println("---------排序前遍历--------------");
for(Entry<String, String> entry: entryList){
System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
}
Collections.sort(entryList,new Comparator<Entry<String,String>>()
{
@Override
public int compare(Entry<String, String> o1, Entry<String, String> o2)
{
// return o1.getKey().compareTo(o2.getKey()); // 根据Key排序,默认按升序排列
return o1.getValue().compareTo(o2.getValue()); // 根据Value排序,默认按升序排列
}
});
System.out.println("---------排序后遍历--------------");
for(Entry<String, String> entry: entryList){
System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
}
}
运行结果
---------排序前遍历--------------
key=dd,value=3
key=aa,value=1
key=bb,value=2
key=cc,value=4
---------排序后遍历--------------
key=aa,value=1
key=bb,value=2
key=dd,value=3
key=cc,value=4