zoukankan      html  css  js  c++  java
  • HashMap和HashTable

     HashMap采用哈希算法实现,是Map接口最常用的实现类。 由于底层采用了哈希表存储数据,我们要求键不能重复,如果发生重复,新的键值对会替换旧的键值对。 HashMap在查找、删除、修改方面都有非常高的效率。

    【示例】Map接口中的常用方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class TestMap {
        public static void main(String[] args) {
            Map<Integer, String> m1 = new HashMap<Integer, String>();
            Map<Integer, String> m2 = new HashMap<Integer, String>();
            m1.put(1"one");
            m1.put(2"two");
            m1.put(3"three");
            m2.put(1"一");
            m2.put(2"二");
            System.out.println(m1.size());
            System.out.println(m1.containsKey(1));
            System.out.println(m2.containsValue("two"));
            m1.put(3"third"); //键重复了,则会替换旧的键值对
            Map<Integer, String> m3 = new HashMap<Integer, String>();
            m3.putAll(m1);
            m3.putAll(m2);
            System.out.println("m1:" + m1);
            System.out.println("m2:" + m2);
            System.out.println("m3:" + m3);
        }
    }

          执行结果如图所示:

    图9-11 示例9-7运行效果图.png

          HashTable类和HashMap用法几乎一样,底层实现几乎一样,只不过HashTable的方法添加了synchronized关键字确保线程同步检查,效率较低。

    HashMap与HashTable的区别

          1. HashMap: 线程不安全,效率高。允许key或value为null。

          2. HashTable: 线程安全,效率低。不允许key或value为null。

  • 相关阅读:
    十一、docker仓库
    十、Docker容器:磁盘&内存&CPU资源限制实战
    八、docker的跨主机网络通信--flanneld
    九、dockerfile制作docker 镜像
    七、自己定制一个docker镜像
    六、docker的数据卷
    五、docker容器的网络访问
    四、docker容器的操作
    三、docker的镜像操作
    商品SKU
  • 原文地址:https://www.cnblogs.com/huaxiansheng/p/15317765.html
Copyright © 2011-2022 走看看