java hashmap 按照value进行排序
重点: 主要是通过现将map里的entrySet 转成list,然后用list.sort排序
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < split.length; i++) {
map.put(Integer.valueOf(split[i]), map.getOrDefault(Integer.valueOf(split[i]), 0) + 1);
}
List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
//根据value的值来倒序排序
list.sort((o1, o2) -> o2.getValue().compareTo(o1.getValue()));
List<Integer> result = new ArrayList<>();
package com.sf.ccmas.video.config.sdt;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s1 = scanner.nextLine();
String[] split = s1.split(" ");
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < split.length; i++) {
map.put(Integer.valueOf(split[i]), map.getOrDefault(Integer.valueOf(split[i]), 0) + 1);
}
List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
//根据value的值来倒序排序
list.sort((o1, o2) -> o2.getValue().compareTo(o1.getValue()));
List<Integer> result = new ArrayList<>();
int temp = 0;
for (int i = 0; i < list.size(); i++) {
temp = Math.max(temp, list.get(i).getValue());
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getValue() == temp) {
result.add(list.get(i).getKey());
}
}
if (result.size() % 2 == 0) {
System.out.println((result.get(result.size() / 2) + result.get((result.size() / 2) -1)) / 2);
} else {
System.out.println(result.get(result.size() / 2));
}
}
}