Java集合
文章平均质量分 78
大雾隔绝尘世,临终当歌
叹失路的野马,以江湖为家
流浪中,恍觉世间女子美丽芳华
楼兰抱住了墓碑
还是抱住了天尽头的海角山崖?
雪孤城
所念皆星河,所系皆山河
展开
-
Java基础:ConcurrentHashMap
1.基于JDK1.7的实现由一个Segment数组和多个HashEntry组成,而每一个Segment元素存储的是HashEntry数组+链表,即由数组 + 链表的结构实现Segment:Segment本身就相当于一个HashMap对象,其中包含了一个HashEntry数组。即,数组中的每一个HashEntry既是一个键值对,也是一个链表的头节点static final class Segment<K,V> extends ReentrantLock implements Seria原创 2020-09-23 17:51:03 · 26147 阅读 · 0 评论 -
Java基础:Vector
1.简介Vector继承AbstractList抽象类,实现List, RandomAccess, Cloneable, java.io.Serializable接口Vector继承AbstractList抽象类,实现List, RandomAccess, Cloneable, java.io.Serializable接口List接口:制定了List的操作规范RandomAccess接口:随机访问Cloneable接口:可以克隆对象(浅拷贝)Serializable接口: 对象序列化Vect原创 2020-09-17 12:00:57 · 132 阅读 · 0 评论 -
Java基础-HashMap
1.结构(JDK1.7)HashMap底层主要代码:transient Entry[] table; 从代码中可以看到一个hashmap的主干就是一个数组结构,当新建一个hashmap的时候,就会初始化一个数组。static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; final int hash; E原创 2020-07-03 00:38:36 · 165 阅读 · 0 评论 -
Java基础:ArrayList实现原理及扩容
1.ArrayList数据结构底层数据结构就是一个元素的类型为Object类型的数组2.ArrayList线程安全性添加元素时的步骤:先在object [size] 的位置上存放需所添加的元素将 size 的值增加1假设在多线程的情况下操作ArrayList,1号线程添加元素(只进行了步骤1,即把该元素放在了object [size] 的位置上),因为网络或其他原因没有进行步骤2.2号线程添加元素,因为1号线程size值并没有发生改变,所以2号线程所添加的元素同样放在了object原创 2020-08-04 23:19:40 · 539 阅读 · 0 评论 -
Java基础-HashMap链表成环问题
1.JDK7 中 HashMap 成环原因1.1 成环的时机HashMap 扩容时多线程环境下1.1 成环的时机原创 2020-09-04 17:57:00 · 1713 阅读 · 0 评论 -
Java基础:LinkedList
1.性质及底层实现LinkedList是一种双向链表结点Node类代码://结点内部类private static class Node<E> { E item; //元素 Node<E> next; //下一个节点 Node<E> prev; //上一个节点 Node(Node<E> prev, E element, Node<E> next) { this原创 2020-09-15 16:28:26 · 117 阅读 · 0 评论