day20 Java Map类 字符统计 HashMap和Hashtable的区别


肯定的微笑
准备,往前出发




1. 字符统计

键盘录入字符串
获取字符串中每一个字母出现的次数
要求结果:
a(5)b(4)c(3)d(2)e(1)

/*
  先接收字符串并转为字符数组
  利用遍历向 treemap 中覆盖添加  
  利用 stringbuffer 接受格式统一后的数据
 */
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    char[] chars = s.toCharArray();

    TreeMap<Character, Integer> tm = new TreeMap<>();

    for (char c : chars) {
    
    

        if(!tm.containsKey(c)){
    
    
            tm.put(c,1);
        }else{
    
    
            Integer i = tm.get(c);
            //	此处需要先自增 1,再调用,否则一直是 1
            tm.put(c,++i);
        }
    }

    Set<Map.Entry<Character, Integer>> entries = tm.entrySet();

    StringBuffer sb = new StringBuffer();
    for (Map.Entry<Character, Integer> entry : entries) {
    
    
        Character key = entry.getKey();
        Integer value = entry.getValue();
        sb.append(key+"("+value+")");
    }
    System.out.println(sb);
}

2. HashMap和Hashtable的区别

1、相同点:
它们存储的元素类型都是K-V格式的

2、不同点:
1)Hashtable是线程安全的,HashMap不是线程安全的
2)Hashtable的key的值和value的值都不允许为null,而HashMap均允许

おすすめ

転載: blog.csdn.net/qq_41464008/article/details/120833473