标签:支持 res 固定 nod 运算 arraylist 现在 hashmap 注意
扩容算法是首先获取到扩容前容器的大小。然后通过oldCapacity (oldCapacity >> 1) 来计算扩容后的容器大小newCapacity。这里用到了>> 右移运算,即容量增大原来的1.5倍。还要注意的是,这里扩充容量时,用的时Arrays.copyOf方法,其内部也是使用的System.arraycopy方法。
区别:
可以通过Collections.sychronizeList将list转换成同步list,或者直接使用CopyOnWriteArrayList。
ArrayList线程安全的一个版本,底层通过synchronize加锁实现线程安全。
HashMap使用resize()方法来进行扩容,计算table数组的新容量和Node在新数组中的新位置,将旧数组中的值复制到新数组中,从而实现自动扩容。
标签:支持 res 固定 nod 运算 arraylist 现在 hashmap 注意
原文地址:https://www.cnblogs.com/clawhub/p/12064422.html