Hashmap

作者: 无聊的拖鞋 | 来源:发表于2018-06-18 15:56 被阅读0次
    • 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的原理

    相关文章

      网友评论

          本文标题:Hashmap

          本文链接:https://www.haomeiwen.com/subject/szyneftx.html