Hashtable集合 --练习题_计算一个字符串中每个字符出现次数

Hashtable集合

 java.util.Hashtable<K,V>集合 implements Map<K,V>接口

    Hashtable:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢

    HashMap:底层是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快

    HashMap集合(之前学的所有的集合):可以存储null值,null键

    Hashtable集合,不能存储null值,null键

   Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合(HashMap,ArrayList)取代了

   Hashtable的子类Properties依然活跃在历史舞台

   Properties集合是一个唯一和IO流相结合的集合

例:

复制代码
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put(null,"a");
        map.put("b",null);
        map.put(null,null);
        System.out.println(map);

        Hashtable<String,String> table = new Hashtable<>();
//        table.put(null,"a");
//        table.put("b",null);
        table.put(null,null);
    }
复制代码

计算一个字符串中每个字符出现次数


需求: 计算一个字符串中每个字符出现次数。
分析:
1. 获取一个字符串对象

2. 创建一个Map集合,键代表字符,值代表次数

3. 遍历字符串得到每个字符

4. 判断Map中是否有该键

5. 如果没有,第一次出现,存储次数为1;

如果有,则说明已经出现过,获取到对应的值进行++,再次存储

6. 打印最终结果

演示代码:

复制代码
public static void main(String[] args) {
    //创建一个空集合,用于存放英文字母出现的次数
    HashMap<Character,Integer> map = new HashMap<Character, Integer>();
    //友情提示
    System.out.println("请随机输入一串英文字母:");
    //设置键盘输入
    String scanner = new Scanner(System.in).nextLine();
    //遍历输入的内容
    for (int i = 0; i < scanner.length(); i++) {
        //读取字符
        char c = scanner.charAt(i);
        if (!map.containsKey(c)){//说明不存在这个字符
           map.put(c,1);
        } else {
            //先获取之前的次数
            Integer count = map.get(c);
            //存入
            map.put(c,++count);
        }
    }
    System.out.println(map);
}
复制代码

 

posted @   夫君  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示