一 Map特点
1 双列集合 ,一个键(key)对应一个值(value)
2 键不可以重复,值可以重复(因为键是由Set集合组成的)
3 值可以null
- 所以 定义一个泛型为String类型的List集合,统计该集合中每个字符出现的次数——>字符--次数:一一对应关系,所以用HashMap
二 Map集合常用方法
put(K key,V value) 向map中添加元素
size() 获取map集合的大小
containsKey(K k) 判断集合中是否包含指定的键
containsValue(V v) 判断集合中是否包含指定的值
isEmpty() 判断集合是否为空
clear() 清空
remove(K k) 删除
注:如果键存在,值会进行覆盖
三 Map集合的两种遍历方式
1 keySet()方法
通过Keyset()获取所有的key然后通过Key获取对应的value
HashMap<Student,String> map = new HashMap<>();
Student s1 = new Student("棒棒",19);
Student s2 = new Student("滴滴",18);
Student s3 = new Student("跳跳",17);
map.put(s1,"内蒙");
map.put(s2,"湖南");
map.put(s3,"南京");
//方法一:使用KeySet获取所有的key
Set<Student> keys=map.keySet();
for (Student key : keys) {
String value=map.get(keys);
System.out.println(key+"-"+value);
}
2 entrySet()方法
通过entrySet()获取所有的key value,然后通过Key获取对应的value
方法二:使用EntrySet获取键和值
Set<Map.Entry<Student,String>> entries=map.entrySet();
for (Map.Entry<Student, String> entry : entries) {
Student key=entry.getKey();
String value=entry.getValue();
System.out.println(key+"-"+value);
HashMap集合底层原理
是哈希表结构
依赖hashCode()方法和equals()方法保证键唯一性
如果键要存储的是自定义对象,要重写hashCode()和equals()方法
TreeMap集合底层原理
是红黑树结构
依赖自然排序或者比较器排序,对键进行排序
如果键要存储自定义对象,要定义排序的规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY