集合
damokelisijian866
这个作者很懒,什么都没留下…
展开
-
Java同步容器和并发容器
我们知道,普通的集合类ArrayList、LinkedList、HashMap等等是线程不安全的,即:在多线程共同操作这些类对象时,会发生竞态条件或者异常。如果我们需要在多线程下使用这些集合类,就需要显示地进行同步操作(用syncrhoized关键字等对集合类的操作代码加同步锁)。如果不想这么麻烦,我们可以送Java提供的同步容器,同步容器默认是线程安全的,对它的操作都是已经默认加了同步锁的。一...原创 2020-03-12 23:50:58 · 433 阅读 · 4 评论 -
HashMap默认容量为16的原因
集合是Java开发日常中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于我们来说并不陌生。在日常开发中我们会经常以如下方式创建一个HashMap:Map<String, String> map = new HashMap<String, String>();但是上面的代码有个问题,我们并没有指定容量,这个新创建的HashMap有一个默认容量。...原创 2019-12-10 00:42:42 · 896 阅读 · 12 评论 -
为什么要重写hashcode和equals方法?
1.通过Hash算法来了解HashMap对象的高效性我们首先了解下数据结构中的一个知识点:在一个长度为n(假设是10000)的 线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾一次便利来查找,这样的平均查找次数是除以2(这里是5000)。对于Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找次数接近于1,代...原创 2019-11-09 16:27:29 · 294 阅读 · 0 评论