![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
文章平均质量分 96
无法无天过路客
Java程序员一枚,喜欢记录收集技术文章
展开
-
为什么禁止在foreach循环里面进行元素的remove/add操作
在阿里巴巴开发手册中,有这样一条规定:但是手册中没有给出具体原因,这到底是为什么呢?foreach循环foreach循环是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从JDK 1.5.0开始引入foreach循环,在遍历数组、集合方面,foreach为开发人员提供了极大的方便,通常也被称之为增强for循环。foreach语法格式如下:for(元...原创 2019-05-07 16:15:01 · 5047 阅读 · 2 评论 -
为什么建议在集合初始化时指定集合容量大小
集合是Java开发日常开发中经常会使用到的,关于集合类,《阿里巴巴开发手册》中有一个规定:为什么会有如此建议?如果一定要设置初始容量的话,设置多少比较合适?为什么要设置初始值我们先来写一段代码测试一下,在不指定初始化容量和指定初始化容量的情况下的性能如何。 public static void main(String[] args) { int aHundredMillion = 1...原创 2019-05-07 23:57:45 · 6740 阅读 · 1 评论 -
HashMap 和 ConcurrentHashMap
Java 7 HashMapHashMap 是最简单的,一来我们非常熟悉,二来就是它不支持并发操作,所以源码也非常简单。首先,我们用下面这张图来介绍 HashMap 的结构。由上图可以看出,HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。图中每个蓝色的实体是嵌套类 Entry 的实例,Entry 包含四个属性:key, value, hash 值和用于单向链表的 next。...转载 2019-05-21 17:45:53 · 114 阅读 · 0 评论 -
Java 8 ConcurrentHashMap的使用原理
ConcurrnetHashMap是J.U.C包里面提供的一个线程安全并且高效的HashMap,所以ConcurrentHashMap在并发编程的场景中使用的频率比较高。ConcurrentHashMap是Map的派生类,API基本和HashMap类似,主要就是get、put这些方法。接下来基于ConcurrentHashMap的put操作来分析ConcurrentHashMap的源码实现。JD...原创 2019-05-23 16:59:48 · 1286 阅读 · 1 评论