首页 > 其他分享 >HashMap和Hashtable的区别 day15

HashMap和Hashtable的区别 day15

时间:2024-08-14 14:40:29浏览次数:7  
标签:Map HashMap day15 键值 Hashtable put null

/*
    Map: 存储元素的特点是每一个元素是一个键值对{【name:"魏一民"】 , 【age:18】}

    Map集合的共同拥有的特点:
        1、Map集合中的元素,键是唯一的,不会在一个Map集合发现两个相同的键
            1001:魏一民
            1002:陈真
            1001:小虎
        2、Map集合中,值是可以发生重复的
            1001:魏一民
            1002:魏一民
        3、Map集合的唯一性,排序都是针对键来说的,值是跟着键走的

    Map(接口)
        - HashMap(底层数据结构是哈希表,元素要想保证唯一性的话,需要重写hashCode和equals方法)
        -


    Map接口中的成员方法:
        V put(K key,V value)                 向集合中添加键值对元素  返回的是被覆盖的键对应的那个值
        V remove(Object key)                 根据键删除一个键值对元素 返回被删除键值对的值
        void clear()                         清空集合
        boolean containsKey(Object key)      判断键是否存在
        boolean containsValue(Object value)  判断值是否存在
        boolean isEmpty()                    判断是否为空
        int size()                           获取集合中的键值对的个数



 */
package com.shujia.day15;

import java.util.HashMap;
import java.util.Hashtable;

/*
    面试题:HashMap和Hashtable的区别
    区别1:HashMap中的键和值都允许为null值,Hashtable的键和值都不允许null
    区别2:HashMap是线程不安全的,Hashtable是线程安全的,因为它的方法基本都有synchronized
 */
public class HashMapDemo2 {
    public static void main(String[] args) {
        HashMap<String, String> map1 = new HashMap<>();
//        map1.put(null,"qwe");
//        map1.put(null,null);
//        map1.put("qwerwqr",null);

        Hashtable<String, String> map2 = new Hashtable<>();
//        map2.put(null,"qwe");
//        System.out.println(map2);
//        map2.put("zxc",null);
    }
}

标签:Map,HashMap,day15,键值,Hashtable,put,null
From: https://www.cnblogs.com/qiwei-bigdata/p/18358917

相关文章

  • HashMap源码全解析
    1.源码全集如下查看代码 publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,Serializable{@java.io.SerialprivatestaticfinallongserialVersionUID=362498820763181265L;staticfinalinthash(O......
  • HashMap 中处理哈希冲突,红黑树对于没有实现 Comparable 接口的 Key 处理
    背景:假设有两个对象,分别是stu和teach(都没有实现Comparable接口),将它们添加进去HashMap里,假设这两个对象发生哈希冲突,那么红黑树怎么判断它们谁在左谁在右?依据是什么?​ 当两个对象stu和teach的哈希值相同,且它们没有实现Comparable接口时,Java8的HashMap会使用t......
  • ConcurrentHashMap的原理
    背景我们知道hashmap是一个线程不安全的数据结构,在多线程编程的时候,多个线程同时向hashmap中put元素的时候,会发生数据丢失。多线程put操作后,再get操作导致死循环。多线程put非NULL元素后,get操作得到NULL值。使用为了保证并发安全,我们使用hashmap的时候,建议是使用ConcurrentHas......
  • 如何解决hashmap不按序问题
    HashMap 在Java中本质上是不保证任何顺序的,特别是它不保证元素会按照插入的顺序进行存储或遍历。如果需要维护元素的插入顺序,可以使用 LinkedHashMap,它在内部通过维护一个双向链表来保持插入顺序。如果想要按照键的自然顺序或者自定义的比较器顺序来存储和遍历键值对,可以使......
  • Java集合:Collection and Map;ArrayList;LinkList;HashSet;TreeSet;HashMap;TreeMap;Iterator:
        集合介绍:                        是一组变量类型(容器),跟数组很像。一,引用集合的原因(必要性):                  A:数组的空间长度固定,一旦确定不可以更改。多了浪费,少了报错。          B:使用数......
  • Hashtable工具类 - C#小函数类推荐
          此文记录的是一个Hashtable的增强版本,以前没泛型的时候笔者喜欢用Hashtable,性能刚刚的。/***Hashtable工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comD......
  • Java HashMap 源码解读笔记(二)--xunznux
    文章目录HashMapputVal插入新值方法方法解读1.7和1.8有哪些区别resize重新哈希方法treeifyBin树化方法treeify树化方法untreeify链化方法HashMap本文主要是用于记录我在阅读Java1.8的HashMap源码所做的笔记。对于源码中的注释会进行翻译下来,并且会对其中部......
  • Java HashMap 源码解读笔记(一)--xunznux
    文章目录HashMap介绍实现说明:源码解读静态常量和内部节点类Node静态工具方法属性字段Fields未完待续。。。HashMap本文主要是用于记录我在阅读Java1.8的HashMap源码所做的笔记。对于源码中的注释会进行翻译下来,并且会对其中部分源码进行注释。这一篇文章主要......
  • HashMap是如何解决哈希冲突的?
    1.要了解Hash冲突,首先要先了解Hash算法和Hash表(1)Hash算法,就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出结果是散列值.(2)Hash表又叫做“散列表”,它是通过key直接访问在内存存储位置的数据结构,在具体实现上,我们通过hash函数把key映射到表中的某......
  • HashMap
    HashMap0.题目地址设计哈希映射1.链地址法classMyHashMap{classNode{privateintkey;privateintvalue;publicNode(intkey,intvalue){this.key=key;this.value=value;}}private......