- Hashmap是一个K-V键值对的散列表
- 继承了AbstractMap 实现了Map,Cloneable, Serializable接口
- Hashmap不是线程安全的,K,V均可为null。
- HashMap(int initialCapacity, float loadFactor):构造一个带指定初始容量和加载因子的空 HashMap。
在这里提到了两个参数:初始容量,加载因子。这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量,加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,它衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,反之愈小。
Hashmap的使用
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class test {
public static void main(String[] args) {
//实例化一个hashmap对象
HashMap<String, Integer> hashMap=new HashMap<>();
//生成数据
hashMap.put("andy", 10);
hashMap.put("cindy",20);
hashMap.put("kitty",30);
hashMap.put("james",30);
//打印
System.out.println(hashMap+"");
//打印size
System.out.println("size="+hashMap.size());
//打印是否含有某个键
System.out.println(hashMap.containsKey("cindy"));
//删除某个键
hashMap.remove("kitty");
System.out.println(hashMap+"");
//使用迭代器遍历
Iterator iterator=hashMap.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry entry=(Entry) iterator.next();
System.out.println("key="+entry.getKey()+"value="+entry.getValue());
}
//清空hashmap
hashMap.clear();
//判断是否为空
System.out.println(hashMap.isEmpty());
}
}
HashMap的原理
Hashmap由数组和链表组成, 数组存放的key-value对,通过hash值找到key对应的value,再通过链表对hash值相同的进行查找,最后通过拉链法解决哈希冲突
HashMap的原理
网友评论