HashMap
HashMap 是一个散列表,它存储的内容为键值对映射。
它实现了Map接口,根据键的HashCode值来存储数据,具有很快的访问速度,最多允许一条数据的键为 null,不支持线程同步。
HashMap是无序的,即不会记录插入顺序。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmsD1Klk-1613276579289)(HashMap.png)]
HashMap 的 value 值不做强制要求。
HashMap 中的元素实际上是对象,一些常见的基础类型可以使用它的包装类。
创建
HashMap<Integer,String> hm = new HashMap<Integer,String>();
添加元素
hm.put(1,"zs");
hm.put(2,"Taobao")
获取元素
使用get(key)
方法
hm.get(1);
hm.get(2);
删除元素
使用remove(key)
方法
hm.remove(1)
计算大小
使用size()
方法
hm.size();
迭代
-
可以使用 for-each 来迭代 HashMap 中的元素
-
如果只想要 key,可以使用
keySet()
方法,然后使用get(key)
获取对应的value -
如果只想要 value,可以使用
values()
方法。for(Integer i : hm.keySet()){ System.out.println("key:"+i); System.out.println("value:"+hm.get(i)); } for(String value : hm.values()){ System.out.print(value); }
常用方法
方法 | 描述 |
---|---|
clear() | 清除所有的键值对 |
clone() | 复制一份 hashMap |
isEmpty() | 判断是否为空 |
putAll() | 将所有的键值对添加到HashMap |
containsKey() | 检查hashMap中是否存在指定的 key对应的映射关系 |
containsValue() | 检查是否存在指定的value对应的映射关系 |
replace() | 替换hashmap中指定的key对应的value |
replaceAll() | 将所有映射关系替换成函数执行的结果 |
getOrDefault() | 获取指定key对应的value,如果找不到key则返回默认值 |
forEach() | 对hashmap中的每个映射执行指定的操作 |
hm.replaceAll( (key,value)->value.toUpperCase() );
hm.forEach((key,value)->{
value = value*10;
System.out.print(key+" "+value);
lue)->{
value = value*10;
System.out.print(key+" "+value);
})