Map排序
面试的时候经常会被问到的map排序
流程:
1.定义个方法
2.传参map
3.将map变成list
4.使用Collections.sorts进行排序
5.后边看代码吧
话不多说,先贴代码
package helloword;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
//des:字典排序
public class dictSort {
public static <K,V extends Comparable<?super V>> Map<K,V> sortmss(Map<K,V> map){
List<Map.Entry<K,V>> list=new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Entry<K, V> o1, Entry<K, V> o2) {
// TODO Auto-generated method stub
int m=o1.getValue().compareTo(o2.getValue());
return -m;
}
});
Map<K, V> maps=new LinkedHashMap<>();
for(Map.Entry<K, V> mapent:list) {
maps.put(mapent.getKey(), mapent.getValue());}
return maps;
}
public static void main(String[] args) {
Map<String, Integer> msp=new HashMap<>();
msp.put("hahaha", 123);
msp.put("woshdsidd", 456);
msp.put("sadadsa", 145);
msp.put("asdhusah", 123);
msp=dictSort.sortmss(msp);
System.out.println(msp);
}
}