![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合
文章平均质量分 84
Java集合
Seven_97H
欢迎到访Java在线学习网站:www.seven97.top
展开
-
ConcurrentLinkedQueue
非阻塞队列中的几种主要方法:offer(E e):将元素e插入到队列末尾,如果插入成功,则返回true;如果插入失败(即队列已满),则返回false;poll():移除并获取队首元素,若成功,则返回队首元素;否则返回null;peek():获取队首元素,若成功,则返回队首元素;否则返回null对于非阻塞队列,对于非阻塞队列,一般情况下建议使用offer、poll和peek三个方法,不建议使用add和remove方法。原创 2023-11-30 10:38:17 · 396 阅读 · 0 评论 -
ConcurrentHashMap
concurrentHashMap是一个支持高并发更新与查询的哈希表(基于HashMap)。hashtable该类不依赖于synchronization去保证线程操作的安全。Collections.synchronizedMap()也可以将map转成线程安全的。而concurrentHashMap在保证安全的前提下,进行get不需要锁定。ConcurrentHashMap的主要使用CAS 加 volatile 或者 synchronized 的方式来保证线程安全。原创 2023-11-30 10:35:47 · 769 阅读 · 0 评论 -
Set相关类
HashSet 基于 HashMap 实现。放入HashSet中的元素实际上由HashMap的key来保存,而HashMap的value则存储了一个静态的Object对象。底层源码。原创 2023-11-30 10:35:01 · 448 阅读 · 0 评论 -
TreeMap & 红黑树
由于在AVL树中,由于AVL树是绝对平衡的,所有在进行插入和删除的时候,为了维护其绝对的平衡性,有时候进行修改节点的操作,需要进行到根节点,旋转的次数比较多,所以出现了红黑树,当数据不是静态的数据而是动态的数据,进行插入和删除的时候就不用去维护绝对的平衡,也就减少了旋转的次数,照样可以提高效率,并且红黑树的平均查找效率还是logn。我们没有考虑叔叔节点是黑节点情况,因为如果叔叔结点为黑结点,而父结点为红结点,那么叔叔结点所在的子树的黑色结点就比父结点所在子树的多了,这不满足红黑树的性质5。原创 2023-11-30 10:34:10 · 878 阅读 · 0 评论 -
HashMap详解
/ HashMap的默认初始容量,16//HashMap的最大支持容量,2^30//HashMap的默认加载因子//Bucket中链表长度大于该默认值,转化为红黑树//Bucket中红黑树存储的Node小于该默认值,转化为链表/*** 桶中的Node被树化时最小的hash表容量。*(当桶中Node的数量大到需要变红黑树时,* 若hash表容量小于MIN_TREEIFY_CAPACITY时,原创 2023-11-30 10:33:10 · 848 阅读 · 0 评论 -
ArrayList详解、Vector和CopyOnWriteArrayList和LinkedList
/集合默认容量10;//空数组//默认容量的空的数组// 集合中真实存储数据的数组//集合中元素的个数,注意,这里不是数组的长度对于频繁的插入或删除元素的操作,建议使用LinkedList类,效率较高;底层使用双向链表存储//存储链表的第一个节点//存储链表的最后一个节点。原创 2023-10-14 09:31:05 · 88 阅读 · 0 评论