/**
* 根据map的value倒序排序
* @param map
* @param <K>
* @param <V>
* @param type 1为正序,2位倒序
* @return
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map,String type) {
List<Map.Entry<K, V>> list = new LinkedList<>(map.entrySet());
if (type.equals("1")){
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
}else{
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o2.getValue()).compareTo(o1.getValue());
}
});
}
Map<K, V> result = new LinkedHashMap<>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
/**
* 根据map的key排序
* @param map
* @param <K>
* @param <V>
* @param type 1为正序,2位倒序
* @return
*/
public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map,String type) {
List<Map.Entry<K, V>> list = new LinkedList<>(map.entrySet());
if (type.equals("1")){
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o1.getKey()).compareTo(o2.getKey());
}
});
}else{
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o2.getKey()).compareTo(o1.getKey());
}
});
}
Map<K, V> result = new LinkedHashMap<>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
Map集合根据key或value排序
最新推荐文章于 2024-03-13 22:01:43 发布
该博客介绍了如何使用Java对Map进行倒序和正序排序,通过Comparator实现value和key的定制排序,适用于不同场景的需求。
1万+

被折叠的 条评论
为什么被折叠?



