Hash table集合-练习_计算一个字符串中每个字符出现次数
Hash table集合
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集合是一个唯—和I0流相结合的集合
package A_Lian_one.demo15Collections; import java.util.HashMap; public class Demo02Hashtable { 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); } }
练习_计算一个字符串中每个字符出现次数
需求∶
计算一个字符串中每个字符出现次数。
分析:
1.获取一个字符串对象
2.创建一个Map集合,键代表字符,值代表次数。
3.遍历字符串得到每个字符。
4.判断Map中是否有该键。
5.如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。
6.打印最终结果
package A_Lian_one.demo15Collections; import java.util.HashMap; import java.util.Scanner; public class Demo03MapTest { public static void main(String[] args) { demo01(); } private static void demo01() { //使用scanner获取用户输入的字符串 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串"); String str = sc.next(); //创建map集合,key是字符串中的字符,value是字符的个数 HashMap<Character, Integer> map = new HashMap<>(); //遍历字符串,获取每一个字符 for (char c : str.toCharArray()) { //使用获取到的字符,去map集合判断key是否存在 if (map.containsKey(c)){ //key存在 Integer value = map.get(c); value++; map.put(c,value); }else { map.put(c,1); } } for (Character key : map.keySet()) { Integer value = map.get(key); System.out.println(key+"="+value); } } }
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix