📅  最后修改于: 2023-12-03 15:37:36.406000             🧑  作者: Mango
在Java中,如果需要按照字符出现的顺序来打印字符及其频率,可以使用 LinkedHashMap 这个数据结构来实现。LinkedHashMap 是 HashMap 的一个子类,除了能够保持元素插入的顺序,还可以指定元素的顺序。
下面是一个使用 LinkedHashMap 来实现按出现顺序打印字符及其频率的示例代码:
import java.util.LinkedHashMap;
import java.util.Map;
public class CharacterFrequency {
public static void main(String[] args) {
String str = "hello, world";
Map<Character, Integer> charFreq = new LinkedHashMap<>();
for (char ch : str.toCharArray()) {
if (charFreq.containsKey(ch)) {
charFreq.put(ch, charFreq.get(ch) + 1);
} else {
charFreq.put(ch, 1);
}
}
for (Map.Entry<Character, Integer> entry : charFreq.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
}
}
代码解释:
运行上述代码,可以获得下面的运行结果:
h -> 1
e -> 1
l -> 3
o -> 2
, -> 1
-> 1
w -> 1
r -> 1
d -> 1
本文介绍了如何使用 LinkedHashMap 来按出现顺序打印字符及其频率。除了本例中的字符和字符串,这种实现方式也适用于其他数据类型的元素。如果需要根据其他的顺序来输出元素,只需要更改 LinkedHashMap 的构造函数或者指定元素的 Comparator 即可。