HashMap:基于哈希表的Map接口实现,是一个键值对的映射集合,可以存储任何类型的数据(HashMap<,>),在短时间内完成添加、删除、查找元素操作,因此在大量数据存储时,它的效率往往比较高。
一.原理:将键换算成hash值保存在hash表中,当然一个键只能对应一个值,一个值可以对应多个键。同时键换算成hash值时,相同的hashMap值的键保存在一起,等查询的时候在从表中找出hash值,再找出键。
二.特点:
1、在hashMap中允许存储null值和null键,可以有多个null值,但却只能有一个null键。
2、hashMap不保证映射的顺序,也不保证该顺序一直保持不变。(TreeMap是按照键自然顺序储存的)
3、hashMap不是线程安全的,不适合多线程的同步。
三、hashMap的基本使用:
1.创建对象:
HashMap<String,Integer> map = new HashMap<>();
2.添加元素:
map.put("语文",80);
map.put("英语",90);
map.put("数学",90);
map.put("体育",80);
3.移除元素:
map.remove("英语");
map.remove("数学",90);
4.获取元素:
map.get("语文");
5.遍历元素(这里用到了entrySet(),可以返回HashMap中所有键值对的集合)
for(Map.Entry<String,Integer>entry:map.entrySet()){
System.out.println(entry.getKey()+entry.getValue());
}
6.清空hashMap中所有键值对:
map.clear();
7.判断hashMap中是否有这个键:
if(!map.containsKey("语文")){
map.put("语文",100);
}
8.判断hashMap中是否有这个值:
if(map.containsValue(100)){
System.out.println("你真棒!!");
}
9.返回HashMap中键值对的数量:size()。
10.返回HashMap中所有键的集合:keySet()。
11.返回HashMap中所有值的集合:values()。