📅  最后修改于: 2023-12-03 14:51:17.754000             🧑  作者: Mango
在Java中,LinkedHashMap是一种具有顺序的HashMap。它维护了一个插入顺序的双向链表,在遍历Map时,可以按照插入顺序输出。
下面是一个示例代码,展示如何使用LinkedHashMap按出现顺序打印字符及其频率。
import java.util.*;
public class LinkedHashMapDemo {
public static void main(String[] args) {
String input = "abbcccccdeee";
Map<Character, Integer> map = new LinkedHashMap<>();
// 统计字符出现次数
for (char ch : input.toCharArray()) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
// 将Map转成List,并按照value值排序
List<Map.Entry<Character, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
@Override
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
// 打印字符及其出现次数
for (Map.Entry<Character, Integer> entry : list) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
使用LinkedHashMap按照插入顺序输出字符及其出现次数非常方便,通过这个示例,可以学习到Java中常用的Map、List等数据结构,并加深对匿名内部类、Comparator等知识的理解。