
集合体系
文章平均质量分 61
2年工作经验的小胡歌
这个作者很懒,什么都没留下…
展开
-
HashSet底层扩容机制
HashSet底层扩容机制一、扩容机制二、树化(红黑树)机制我们通过debug知道,HashSet的底层是HashMap,而HashMap的底层实现原理是(数组+链表+红黑树),分析HashSet的实质其实就是在分析HashMap,了解了HashSet后再去看HashMap就显得简单了一、扩容机制下面有如下代码: Set set=new HashSet<>(); for (int i = 0; i < 100; i++) { s原创 2021-10-25 17:35:49 · 626 阅读 · 0 评论 -
HashSet的底层详解
HashSet的底层详解一、Set接口基本介绍二、HashSet子类基本介绍一、Set接口基本介绍基本介绍2.Set接口中的常见方法:二、HashSet子类基本介绍实现步骤原创 2021-10-25 13:52:20 · 100 阅读 · 0 评论 -
LinkedList的底层实现原理
**1. LinkedList底层实现了双向链表和双端队列特点 可以添加任意元素(元素可以重复),包括null 线程不安全,没有实现同步**原创 2021-10-20 11:06:38 · 572 阅读 · 0 评论 -
Vector的底层扩容机制
Vector的底层扩容机制一、Vector的有参扩容机制二、Vector的有参扩 容机制一、Vector的有参扩容机制首先了解下ArrayList的主要区别:我们知道ArrayLIst查询效率高:ArrayLIst是连续存放元素的,找到第一个元素的首地址,再加上每个元素的占据的字节大小就能定位到对应的元素,但是线程不安全.而Vector很多方法都有同步关键字synchronized,从而保证所有的对外接口都会以 Vector对象为锁,即在vector内部,所有的方法都不会被多线程访问。下面通过原创 2021-10-18 23:33:35 · 137 阅读 · 0 评论 -
关于ArrayList的扩容机制
ArrayList的扩容底层机制一、使用无参构造的方式创建 1、首先创建了一个空的elementData数组DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};2、如果添加的数据类型是基础类型的包装类,首先都会进行自动装箱操作,如果是Double就调用Double的valueof()方法,并返回3、进入add() 3.1 在add()方法中首先调用ensureCapacityInternal(size+1),确认容量大小是否扩容,然后将元素在赋值给eleme原创 2021-10-18 15:43:41 · 135 阅读 · 0 评论 -
Java增强for的本质
Java增强for的本质???在java集合的体系中,增强for的本质是一个简化版的迭代器,既可以用来遍历集合,还可以用来遍历数组。下面通过深究其内部底层实现,有如下简单代码 Collection<String> collection=new ArrayList<>(); collection.add("张三1"); collection.add("张三2"); collection.add("张三3");原创 2021-10-17 23:40:41 · 209 阅读 · 0 评论