![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 容器
文章平均质量分 68
m_iNoError
这个作者很懒,什么都没留下…
展开
-
java容器-源码分析(List、Map)
红色部分为实际使用中需要注意的地方 1.RandomAccess 这个空架子有何用(https://juejin.cn/post/6844903519066193927) 如果 List 子类实现了 RandomAccess 接口,那表示它能快速随机访问存储的元素, 这时候你想到的可能是数组, 通过下标 index 访问, 实现了该接口的 ArrayList 底层实现就是数组, 同样是通过下标访问, 只是我们需要用 get() 方法的形式 , ArrayList 底层仍然是数组的访问形式...转载 2021-03-20 21:01:33 · 167 阅读 · 0 评论 -
java-容器-概述
一、概览 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection 1. Set Set核⼼是独⼀⽆⼆的性质,适⽤于存储⽆序且值不相等的元素。对象的相等性在本质上是对象的HashCode值相同,Java依据对象的内存地址计算出对象的HashCode值。如果想要⽐较两个对象是否相等,则必须同时覆盖对象的hashCode⽅法和equals⽅法,并且hashCode⽅法和equals⽅法的返回值必须相转载 2021-03-29 11:03:44 · 90 阅读 · 0 评论 -
java容器-CopyOnWriteArrayList
1. 读写分离 写操作在一个复制的数组上进行,读操作还是在原始数组中进行,读写分离,互不影响。 写操作需要加锁,防止并发写入时导致写入数据丢失。 写操作结束之后需要把原始数组指向新的复制数组。 public boolean add(E e) { final ReentrantLock lock = this.lock; lock.lock(); try { Object[] elements = getArray(); int len = e转载 2021-03-22 09:30:37 · 68 阅读 · 0 评论 -
java 容器-Vector
1.同步 它的实现与 ArrayList 类似,但是使用了 synchronized 进行同步。 2.扩容 Vector 的构造函数可以传入 capacityIncrement 参数,它的作用是在扩容时使容量 capacity 增长 capacityIncrement。如果这个参数的值小于等于 0,扩容时每次都令 capacity 为原来的两倍。 3. 与 ArrayList 的比较 Vector 是同步的,因此开销就比 ArrayList 要大,访问速度更慢。最好使用 ArrayList 而不是转载 2021-03-22 09:26:53 · 163 阅读 · 0 评论