![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java-集合
peacejl
这个作者很懒,什么都没留下…
展开
-
关于Unbounded queue 、 Bounded queue -整理
可选是否有界队列(optionally-bounded)LinkedBlockingQueue有界队列无界队列ConcurrentLinkedQueue什么时候用无界队列?用无界队列的时候不用担心溢出吗?用有界队列的时候ThreadPoolExecutor-相关ThreadPoolExecutor的实现,可以使得队列是无界队列。使用无界队列时,要注意,核心线程数 X最大线程数 Y最大线程数不会生效,因为队列永远不会满。。...原创 2020-10-29 23:37:44 · 732 阅读 · 0 评论 -
Java-Collection集合- 关于optional operation
Collection类中的一些方法上有(optional operation)标识例如:add()方法boolean java.util.Collection.add(E e)Ensures that this collection contains the specified element (optional operation). Returns true if this collection changed as aresult of the call. (Returns false if原创 2020-10-29 22:36:48 · 306 阅读 · 0 评论 -
ConcurrentHashMap 常用方法
void clear()从该映射中移除所有映射关系boolean containsKey(Object key)测试指定对象是否为此表中的键。boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。Enumeration elements()返回此表中值的枚举。Set<Map.Entry<K,V>...原创 2019-08-20 15:26:46 · 4256 阅读 · 0 评论 -
LinkedBlockingQueue-相关整理
boolean offer(E e)将指定元素插入到此队列的尾部(如果立即可行且不会超出此队列的容量),在成功时返回 true,如果此队列已满,则返回 false。boolean offer(E e, long timeout, TimeUnit unit)将指定元素插入到此队列的尾部,如有必要,则等待指定的时间以使空间变得可用。void put(E e)将指定元素插入到此队列的尾部,如...原创 2019-08-20 15:04:45 · 603 阅读 · 0 评论 -
Stack/Queue/Deque 操作方法整理
Stackbooleanempty()测试堆栈是否为空。peek()查看堆栈顶部的对象,但不从堆栈中移除它。pop()移除堆栈顶部的对象,并作为此函数的值返回该对象。push(E item)把项压入堆栈顶部。intsearch(Object o)返回对象在堆栈中的位置,以 1 为基数。Queuebooleanadd(E e)将指定的元素插入此队列(如果立即可行且不会...原创 2019-03-26 20:27:05 · 257 阅读 · 0 评论 -
ArrayList,HashSet,HashMap操作整理
ArrayList方法摘要add(E)将指定的元素添加到此列表的尾部。add(int index, E element)将指定的元素插入此列表中的指定位置。addAll(Collection<? extends E> c)按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。addAll(int index,...原创 2019-03-26 20:21:18 · 376 阅读 · 0 评论 -
ConcurrentHashMap相关整理
HashMap不是线程安全的,故多线程时不能用HashMapHashMap在多线程情况下,在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全的。原理(待)...原创 2020-10-05 16:10:17 · 92 阅读 · 0 评论 -
ArrayList相关整理
ArrayList是什么?ArrayList是数组列表,主要用来装载数据。ArrayList的底层实现ArrayList是用数组来实现的。ArrayList的特点特点:查询效率⾼,增删效率低,线程不安全。使⽤频率很⾼。底层是数组,那么我们为什么可以存放任意数量元素这个功能,是通过数组扩容的方式实现的。ArrayList的默认大小:10ArrayList中存储元素的内存是连续的ArrayList遍历最⼤的优势在于内存的连续性,CPU的内部缓存结构会缓存连续的内存⽚段,可以⼤幅降低读取内存原创 2020-10-15 11:55:16 · 124 阅读 · 0 评论 -
HashMap相关整理
HashMap是什么?HashMap是一种使用了Hash算法的Java中的数据结构,内部主要由数组和链表实现。备注链表是为了应付Hash碰撞时使用,如果没有碰撞,则不需要链表HashMap设计-均匀分布因为HashMap设计是通过,Hash值的不同,放到不同的index下,所以,存在一些的设计,使得index的计算更加均匀。HashMap当发生Hash碰撞时,从头插入还是从尾插入?Java8之前是头插入,Java8之后是尾插入。为什么修改?头插入时,HashMap在并发情况下的put操作在一定原创 2020-10-15 11:56:03 · 119 阅读 · 0 评论 -
HashSet相关整理
HashSet是Java中常用的Set的实现HashSet的实现HashSet底层是用HashMap实现的。HashSet的特点不保证添加顺序保证唯一HashSet是如何保证唯一的?HashSet的底层实现是HashMap,当HashSet中添加元素时,使用把元素的值作为key,new一个Obect()类放入到HashMap中,而HashMap是能够保证key值唯一的。...原创 2020-10-29 10:04:38 · 63 阅读 · 0 评论