题目:准备一个 HashMap 集合,统计字符串"123,456,789,123,456"中每个数字字符串出现的次数并打印出来。
如: 123 出现了 2 次 ,456 出现了 2 次 ,789 出现了 1 次。
思路:先以逗号分割字符串后并将分割好的字符串存到String类型的数组中,然后循环取出数组中的值放入HashMap中,如果返回值不为Null,说明这个值已经放入过了,此时对应的value+1,最后统计所有HashMap中value中的值就能得出出现次数,具体代码如下。
视频:https://www.bilibili.com/video/BV17f4y1677F/
package com.lagou.homework.part3;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashMapCount {
public static void main(String[] args) {
Map<String, Integer> m1 = new HashMap<>();
String str = "123,456,789,123,456,456,894";
// 按逗号分隔字符串并存储数组
String[] splitStr = str.split(",");
for (int i=0; i<splitStr.length; i++){
// 将数组中的值当做Key值放入HashMap
Integer put = m1.put(splitStr[i],1);
// 如果返回值不为null,说明这个key值已经存在
if (null != put){
// 将这个key值对应的value值+1
m1.put(splitStr[i],m1.get(splitStr[i])+1);
}
}
// 打印key和value的值
Set<Map.Entry<String, Integer>> entries = m1.entrySet();
for (Map.Entry<String, Integer> m:entries){
System.out.println(m.getKey() + "出现了 " + m.getValue() + "次");
}
}
}