#集合
y75xwr
这个作者很懒,什么都没留下…
展开
-
Java容器一览表
一、Collection总览 1.Collection功能 2.迭代器(Iterable) Iterator也是一个接口,它只有三个方法: hasNext() next() remove() 1.List集合 特点:有序(存储顺序和取出顺序一致),可重复 常见子类: ArrayList 底层数据结构是数组。线程不安全 LinkedList 底层数据结构是链表。线程不安全 Vector 底层数据结构是数组。线程安全 2.Set集合 特点:元素不可重复 常见子类: HashSet集合 底层数据结原创 2020-07-29 16:18:42 · 158 阅读 · 0 评论 -
1.8 HashMap底层实现与源码分析
一、HashMap数据结构 使用红黑数 红黑树特点 每个节点或是红的或是黑的‘ 根节点是黑的 叶节点是黑的 如果一个节点是红色的,它的两个叶子节点都是黑色的 每个节点,从该节点到它的子孙节点所有路径上包含同等数量的黑节点 红黑树的调整 父节点是黑色,不用调整 父节点是红色:(1与3实现的效果一样) 叔叔是空,旋转+变色(G P变色) 叔叔是红色,父节点和叔叔节点全变为黑色+父节点变为红色 叔叔是黑色的,旋转+变色 ...原创 2020-07-29 14:36:19 · 110 阅读 · 0 评论 -
1.7 concurrentHashMap底层实现与源码分析
数据结构 线程安全 通过UNSAFE获取内存中的实时变量值,通过trylock与lock锁锁住一些方法 扩容方式 底层实现原创 2020-07-29 12:34:38 · 145 阅读 · 0 评论 -
1.7 HashMap底层实现与源码分析
一、HashMap数据结构 二、HashMap线程安全 三、HashMap扩容方式 四、HashMap底层实现 五、HashMap内存原创 2020-07-26 16:40:19 · 149 阅读 · 0 评论 -
LinkedList底层实现源码分析与ArrayList区别
数据结构 双向数据链结构 //在LinkedList类中的属性只有三个属性 transient int size = 0;//记录节点个数 transient Node<E> first;//记录链表的第一个节点 transient Node<E> last;//记录链表最后一个节点 常用方法 构造方法 增加 IndexOutOfBoundsException add() linkFirst()头增 linkLast()尾增 addAll() 删除 NoSuchElementEx原创 2020-06-20 10:25:55 · 208 阅读 · 0 评论 -
ArrayList底层实现源码讲解与vector区别
一、ArrayList数据结构 ArrayList的底层数据结构是一个类型为Object的数组。 数组的初始长度与创建ArrayList对象时使用的构造方法有关 注:数组“elementData”是用来存储数据、操作数据的数组 “DEFAULTCAPACITY_EMPTY_ELEMENTDATA”是默认的空数组 传入的初始长度 使用无参构造函数,创建长度为0的数组,在加入第一个数据时会将数组扩容到默认值10 使用传相同数据类型的数组的构造函数,长度为传参数组的长度 经测试,如果要存100万数据,需原创 2020-06-18 23:22:42 · 513 阅读 · 0 评论