-
Notifications
You must be signed in to change notification settings - Fork 2
/
HashMap
45 lines (34 loc) · 1.42 KB
/
HashMap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
要求:
统计字符串中每个字符出现的次数
分析:
1.定义一个需要被统计字符的字符串
2.将字符串转换成字符数组
3.定义双列集合,用来存储字符串中字符以及字符出现的次数
4.遍历字符数组获取每一个字符,并将字符存储在双列集合中
5.存储过程中要做判断,如果集合中不包含这个键,就将该字符当做键,值为1存储,如果集合中包含这个键,就将值加1存储
6.打印双列集合获取字符出现的次数
代码:
import java.util.HashMap;
import java.util.Scanner;
public class Count_HashMap {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("please input a string:");
String str = input.nextLine();
char[] arr = str.toCharArray(); //将字符串转换成字符数组
HashMap<Character, Integer> hm = new HashMap<>(); //定义双列集合
for (char ch : arr) {
/* if (!hm.containsKey(ch)) {
hm.put(ch, 1);
} else {
hm.put(ch, hm.get(ch) + 1);
}*/
hm.put(ch, !hm.containsKey(ch) ? 1 : hm.get(ch) + 1); //存储字符串中字符以及字符出现的次数
}
System.out.println("\nstatistics:");
for (char key : hm.keySet()) { // hm.keySet() ==> 取得所有键的集合
System.out.println("字符'" + key + "'出现" + hm.get(key) + "次"); // hm.get(key) ==> 根据键获取值
}
input.close();
}
}