【java】HashMap、Map、Set、HashMap.put()、HashMap.keySet()、HashMap.entrySet()、Map.Entry内部类...

本文介绍了一个使用Java实现的HashMap应用案例,包括学生信息管理及字符串中各字母出现次数的统计。通过对学生对象进行增删改查操作,展示了HashMap的基本用法,并通过一个简单的字符串处理例子说明了如何利用HashMap统计字符频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 package com.tn.hashMap;
 2 
 3 public class Student {
 4     private String id;
 5     private String name;
 6     public Student(String id, String name) {
 7         super();
 8         this.id = id;
 9         this.name = name;
10     }
11     public String getId() {
12         return id;
13     }
14     public void setId(String id) {
15         this.id = id;
16     }
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     @Override
24     public String toString() {
25         return  name;
26     }    
27 }
Student
 1 package com.tn.hashMap;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 import java.util.Set;
 6 
 7 public class HashMapDemo {
 8     public static void main(String[] args){
 9         Student student1=new Student("0001","哪吒");
10         Student student2=new Student("0002","杨戬");
11         Student student3=new Student("0003","雷震子");
12         HashMap<String,Student> hm=new HashMap<String,Student>();
13         //HashMap的键值对都是Object类型,如果需要用到基本类型可用Integer之类的包装类
14         hm.put(student1.getId(), student1);
15         hm.put(student2.getId(), student2);
16         hm.put(student3.getId(), student3);
17         //put方法如果key相同,则后面的value会覆盖前面的
18         System.out.println(hm.size());
19         System.out.println(hm);
20         
21         //通过keySet方法用Set遍历
22         Set<String> set=hm.keySet();
23         for(String str:set){
24             System.out.println(hm.get(str));//打印出来的顺序是不可预知的
25         }
26         
27         //通过entrySet方法用set遍历
28         /*放入HashMap集合中的key、Value会被包装成Map.Entry内部类的属性
29          * 一个键值对成为一个Map.Entry实例对象
30          * 
31          */
32         Set<Map.Entry<String, Student>> set1=hm.entrySet();
33         //Set<Map<K,V>.Entry<K, V>> 注:Map后的泛型可不指明,不用写。
34         for(Map.Entry<String, Student> mEntry:set1){
35             System.out.println(mEntry.getKey()+":"+mEntry.getValue());
36         }
37     }
38 }
HashMapDemo

 通过HashMap计算字符串中各字母出现次数:

 1 String str="abbcccddddeeeeeffffff";
 2         HashMap<String,Integer> hashMap=new HashMap<String,Integer>();
 3         for(int i=0;i<str.length();i++){
 4             if(!hashMap.containsKey(str.substring(i, i+1))){
 5                 hashMap.put(str.substring(i, i+1), 1);
 6             }else{
 7                 hashMap.put(str.substring(i,i+1), hashMap.get(str.substring(i, i+1))+1);
 8             }
 9         }
10         System.out.println(hashMap);
snippet

 

转载于:https://www.cnblogs.com/xiongjiawei/p/6623752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值