线性结构的两种常见应用之二: 队列 定义: 一种可以实现“先进先出”的存储结构,即“一端入,一端出”, 队首(front)出队,队尾(rear)入队(注:若front指向队首,则rear指向队尾最后一个有效元素的下一个元素;若rear指向队尾,则front指向队首第一个有效元素的下一个元素) 分类: ...
分类:
编程语言 时间:
2019-08-14 15:03:13
阅读次数:
81
大意: 给定$n$个平面上互不相交的矩形. 若一个矩形区域只包含一个矩形或者它可以水平或垂直切成两块好的区域, 那么这个矩形区域是好的. 求判断整个平面区域是否是好的. 直接分治判断, 可以用链表实现删除元素, 或者直接用$set$ ...
分类:
其他好文 时间:
2019-08-06 14:20:13
阅读次数:
141
基于jdk1.8LinkedList源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术
分类:
其他好文 时间:
2019-08-06 09:15:52
阅读次数:
74
? 在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现线程安全队列Concu ...
分类:
编程语言 时间:
2019-08-03 20:03:50
阅读次数:
104
LinkedList是用链表结构存储数据的,比较适合数据的动态插入和删除,随机访问和遍历速度比较慢,还提供了List接口i中没有定义的方法,专门用于操作表头和表尾的元素,所以可以当作堆栈、队列和双向队列来使用。LInkedList持有头节点和尾节点的引用,有两个构造器,一个是无参构造器,另一个是传入 ...
分类:
其他好文 时间:
2019-07-29 23:05:09
阅读次数:
273
参考:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/Java集合框架常见面试题.md 1、ArrayList与LinkedList的区别? 1)是否线程安全:ArrayList和LinkedList都 ...
分类:
其他好文 时间:
2019-07-26 14:41:11
阅读次数:
149
Codeforces 1166C A Tale of Two Lands 【绝对值问题】给定一个数列,求其中满足$min{|x+y|,|x y|} \leq min{|x|,|y|}$且$max{|x|,|y|} \leq max{|x+y|,|x y|}$的数对$(x,y)$个数。 $x,y$的符 ...
分类:
其他好文 时间:
2019-07-24 13:24:19
阅读次数:
87
LinkedList JDK1.8.0_191 基于双向链表实现,实现了Deque接口,可以用于队列操作 不是线程安全,可以使用Collections.synchronizedList包裹一个线程安全的ListedList 支持fail-fast机制 ListedList的变量 transient ...
分类:
其他好文 时间:
2019-07-22 20:13:36
阅读次数:
119
HashMap 底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入 插入元素后才判断该不该扩容,有可能无效扩容(插 ...
分类:
其他好文 时间:
2019-07-17 19:13:17
阅读次数:
101
HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法: ...
分类:
其他好文 时间:
2019-07-16 12:47:02
阅读次数:
116