随笔分类 - # java集合
HashMap的时间复杂度分析
摘要:HashMap容器O(1)的查找时间复杂度只是其理想的状态,而这种理想状态需要由java设计者去保证。 在由设计者保证了链表长度尽可能短的前提下,由于利用了数组结构,使得key的查找在O(1)时间内完成。 可以将 HashMap分成两部分来看待,hash和map。map只是实现了键值对的存储。而其整
阅读全文
Java技术之AQS详解(AbstractQueuedSynchronizer)
摘要:AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的protected方法,
阅读全文
【HashMap】深入理解HashMap+ConcurrentHashMap的扩容策略
摘要:前言 理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路 前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法, 这里分别对J
阅读全文
Connection接口总结
摘要:总 Connection接口: List 有序,可重复(ps:有序是指按照插入的顺序存储) ArrayList 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程安全,效率低 LinkedList 优点:
阅读全文
集合框架里List、Set、Map中添加元素(add,put)方法返回值问题
摘要:List 其中的add方法返回值是boolean类型 基本返回值都是true(因为通过源码我们可以看到它通过是否修改原有集合来返回true或者false,而多数情况下,List内容可以重复,所以相当于它的内容始终在改变,所以返回为true) List<String> list=new ArrayLi
阅读全文
ArrayList和LinkedList
摘要:相同点: 实现List接口:ArrayList和LinkedList都实现了List接口,可以像操作List一样使用它们。它们都允许存储和操作有序的元素集合,包括添加、删除、修改和遍历等操作。 可变长度:无论是ArrayList还是LinkedList,它们都具有可变长度的特性。可以根据需要动态调整
阅读全文