Hash表

作者: 王古 | 来源:发表于2019-03-08 11:11 被阅读0次

    HashMap

    HashMap 底层是基于数组和链表实现的。其中有两个重要的参数:容量和负载因子
    容量的默认大小是 16,负载因子是 0.75,当 HashMap 的 size > 16*0.75 时就会发生扩容(容量和负载因子都可以自由调整)。

    Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

    HashMap 是一个无序的 Map,因为每次根据 keyhashcode 映射到 Entry 数组上,所以遍历出来的顺序并不是写入的顺序。
    JDK 推出一个基于 HashMap 但具有顺序的 LinkedHashMap 来解决有排序需求的场景,是通过使用双向链表来实现的

    遍历方式

     Iterator<Map.Entry<String, Integer>> entryIterator = map.entrySet().iterator();
            while (entryIterator.hasNext()) {
                Map.Entry<String, Integer> next = entryIterator.next();
                System.out.println("key=" + next.getKey() + " value=" + next.getValue());
            }
    
    HashMap<String, Integer> hashMap = new HashMap<>();
    hashMap.put("aa",1);
    hashMap.put("bb",2);
    hashMap.put("cc",3);
    
    
    hashMap.putIfAbsent("aa",4);
    hashMap.remove("bb");
    hashMap.remove("aa",5)
    
    
    hashMap.get("CC");
    
    Iterator iterator = hashMap.entrySet().iterator();
    while(iterator.hasNext()){
        Map.Entry entry = (Map.Entry) iterator.next();
        String key = (String) entry.getKey();
        Integer value = (Integer) entry.hetValue();
    }
    
    
    Iterator iterator = hashMap.entrySet().iterator();
    while(iterator.hasNext()){
    Map
    }
    
    
    hashMap.containsKey("aa");
    hashMap.contiansValue(1);
    
    hashMap.replace("ff",5);
    
    数组中的重复数字
    

    HashSet

    hashset.add()
    
    hashset.clear():从此 set 中移除所有元素。
    
    hashset.remove(Object o):如果指定元素存在于此 set 中,则将其移除。
    
    hashset.isEmpty():如果此 set 不包含任何元素,则返回 true。
    
    hashset.contains(Object o):如果此 set 包含指定元素,则返回 true。
    
    hashset.size():返回此 set 中的元素的数量(set 的容量)。
    

    判断数组是否有重复的数字

    public boolean containsDuplicate(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        return set.size() < nums.length;
    }
    

    相关文章

      网友评论

          本文标题:Hash表

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