TreeMap<Integer, Integer>按key升序排列
TreeMap<Integer, Integer>按value降序排列
package MapTest;
import java.util.*;
public class Map4 {
public static void main(String[] args) {
TreeMap<Integer, Integer> treeMap = new TreeMap<>();
treeMap.put(1, 310);
treeMap.put(3, 310);
treeMap.put(4, 539);
treeMap.put(2, 420);
ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>(treeMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o1.getKey() - o2.getKey();
}
});
for (Map.Entry<Integer, Integer> entry : list) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
System.out.println();
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o2.getValue() - o1.getValue();
}
});
for (Map.Entry<Integer, Integer> entry : list) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5e8a9342ff89fcfc96079cd878725c1b.png)
Map<Integer, String[]>按照key升序排列
package MapTest;
import java.util.*;
public class Map4 {
public static void main(String[] args) {
HashMap<Integer, String[]> map = new HashMap<>();
map.put(1, new String[]{"4536117005899"});
map.put(3, new String[]{"3424342341666"});
map.put(4, new String[]{"5536117001860"});
map.put(2, new String[]{"2022032600001", "2022032600002", "2022032600003"});
ArrayList<Map.Entry<Integer, String[]>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String[]>>() {
@Override
public int compare(Map.Entry<Integer, String[]> o1, Map.Entry<Integer, String[]> o2) {
return o1.getKey() - o2.getKey();
}
});
for (Map.Entry<Integer, String[]> entry : list) {
System.out.println(entry.getKey() + " " + Arrays.toString(entry.getValue()));
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a0736e4c6eff8da9666bddb22d8821d1.png)
Map<String, String>按照value升序排列
package MapTest;
import java.util.*;
public class Map5 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("b", "4");
map.put("a", "5");
map.put("c", "3");
map.put("d", "5");
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
int flag = o1.getValue().compareTo(o2.getValue());
if (flag == 0) {
return o1.getKey().compareTo(o2.getKey());
}
return flag;
}
});
for (Map.Entry<String, String> en : list) {
System.out.println(en.getKey() + " " + en.getValue());
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9e992e8d1b03a29b855a20c73000e474.png)