diff --git a/s-day04/src/com/inmind/map01/MapTest06.java b/s-day04/src/com/inmind/map01/MapTest06.java new file mode 100644 index 0000000..788d597 --- /dev/null +++ b/s-day04/src/com/inmind/map01/MapTest06.java @@ -0,0 +1,58 @@ +package com.inmind.map01; + +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; +import java.util.Set; + +/* +7.Map练习统计字符出现的次数 +实现分析: + 1.使用scanner接收输入字符串 + 2.字符串转字符数组 + 3.创建一个键为字符,值为整数的双列集合 + 4.遍历字符数组 + 判断双列集合中是否拥有某个字符为key,如果没有,直接添加,次数设置为1 + 判断双列集合中是否拥有某个字符为key,如果有,直接修改,次数设置为当前次数+1 + 5.遍历双列集合 + + */ +public class MapTest06 { + public static void main(String[] args) { + //1.使用scanner接收输入字符串 + Scanner sc = new Scanner(System.in); + System.out.println("请输入您的内容:"); + String line = sc.nextLine(); + //2.字符串转字符数组 + char[] chars = line.toCharArray(); + //3.创建一个键为字符,值为整数的双列集合 + HashMap map = new HashMap<>(); + //4.遍历字符数组 + for (char c : chars) { + //判断双列集合中是否拥有某个字符为key + if (map.containsKey(c)) { + //true:已经包含,那么计数就要在原本的基础上+1 + /*Integer count = map.get(c); + map.put(c, count+1);*/ + map.put(c, map.get(c) + 1); + } else { + //false:未包含,那么计数直接设置为1 + map.put(c, 1); + } + } + + //5.遍历双列集合 + //5.1键找值 + Set keys = map.keySet(); + for (Character key : keys) { + Integer value = map.get(key); + System.out.println(key+":"+value); + } + System.out.println("------------------------------"); + //5.2键值对遍历 + Set> entries = map.entrySet(); + for (Map.Entry entry : entries) { + System.out.println(entry.getKey()+":"+entry.getValue()); + } + } +}