Java HashMap 探索

本文详细介绍了Java中HashMap的基本用法及特点,包括键值对的存储、遍历方式、常用操作等,并提供了实例代码。

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

Java HashMap 探索

1.我们在使用map集合时一般都是使用map的HashMap实现类,如下:
HashMap<K,V> map = new HashMap<>();

1.由上可以看出 map 的键key和值value可以是任意类型

2.键key和值value的类型可以相同,也可以不相同;

3.但对于键key我们希望的是便于查找到值,所以键key的类型常使用StringInteger;

4.值value 可以是基本数据类型,也可以是对象、数组、集合;

5.map 的键key只能是唯一的,不能相同;值value可以相同,也可以不同;

6.如果键相同的话会把之前存放的值覆盖 ;(多用于更新数据

2.map 存值

在map中存放值使用map的put方法

//map中存放String
HashMap<String, String> map1 = new HashMap<>();
map1.put("aa","aaa");
map1.put("bb","bbb");
map1.put("cc","ccc");
HashMap<Integer, String> map2 = new HashMap<>();
map2.put(1,"aaa");
map2.put(2,"bbb");
map2.put(3,"ccc");
//map中存放对象
HashMap<String, Dog> map3 = new HashMap<>();
map3.put("dog",new Dog());
//map中存放List
HashMap<String, List<Users>> map4 = new HashMap<>();
List<Users> usersList = usersMapper.selectList(null);
map4.put("p1",usersList);
3.遍历map集合
  1. 通过keySet() 方法遍历
HashMap<String, String> map1 = new HashMap<>();
map1.put("aa","aaa");
map1.put("bb","bbb");
map1.put("cc","ccc");

//获得map所有的键
Set<String> keys = map1.keySet();
//遍历键 (增强for循环方法遍历)
for (String key : keys) {
    //通过每一个键,获取对应的值
    System.out.println("key:" + key + " value:" + map1.get(key));
}
//遍历键 (迭代器方法遍历)
Iterator<String> iterator = keys.iterator();
//如果获取到了下一个值
while (iterator.hasNext()){
    String key = iterator.next();
    String value = map1.get(key);
    System.out.println("key:" + key + " value:" + value);
}
  1. 通过enttySet()方法遍历
HashMap<String, String> map1 = new HashMap<>();
map1.put("aa","aaa");
map1.put("bb","bbb");
map1.put("cc","ccc");

Set<Map.Entry<String, String>> entries = map1.entrySet();
for (Map.Entry<String, String> entity : entries) {
    String key = entity.getKey();
    String value = entity.getValue();
    System.out.println("key:" + key + " value:" + value);
}
4.map中常用的操作
//1.根据键获取值
String value = map1.get(key);
//2.查询map集合中是否存在某一个键(“aa”) 存在则返回true 反之false;
boolean aa = map1.containsKey("aa");
//3.查询map集合中是否存在某一个值(“bbb”) 存在则返回true 反之false;
 boolean bbb = map1.containsValue("bbb");
//4.清空map集合 (清空map集合中所有的键值)
 map1.clear();
//5.判断map集合是否为空
boolean empty = map1.isEmpty();
//6.复制map集合
HashMap<String, String> map2 = new HashMap<>();
map2.putAll(map1);
//7.删除键值对
	//7.1. 1个参数,根据键删除:
		//参数为键(key),如果存在此键值对,删除成功返回此键对应的值;如果不存在,返回null
String aa = map1.remove("aa");
	//7.2. 2个参数,根据键值对删除:
		//参数为键(key)和值(value),如果存在此键值对,删除成功返回true;如果不存在,返回			false
boolean remove = map1.remove("cc", "ccc");
//8.map集合的键-值映射关系数(即map集合的长度)
int size = map1.size();
//9.如果map集合中存在键(aa),则不做改变,如果不存在,则把键(aa)和值(aaaaa)插入到map集合中
map1.putIfAbsent("aa","aaaaa");
/*10.修改指定键的值,如果存在键(bb1),则修改,反之不修改,返回null;  与 map1.put()方法的区别是map1.put()方法如果存在键(bb1),则修改,不存在,则把键(bb1)和值(bbbb)插入到map集合 */
String replace = map1.replace("bb1", "bbbb");
//11.获取指定 key(aa) 对应对 value,如果找不到 key ,则返回设置的默认值(ssssss)
String orDefault = map1.getOrDefault("aa", "ssssss");
//12.克隆map集合(是一种浅拷贝,map集合中的值如果是引用类型,map1.clone()只会把引用地址拷贝过去;所以当map1中的引用类型的值发生改变后,clone中的值也会随之发生改变)
Object clone = map1.clone();
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值