集合框架
文章平均质量分 79
nZk丶
这个作者很懒,什么都没留下…
展开
-
几种常见的阻塞队列
ArrayBlockingQueue底层维护了一个定长的数组,在生产者生产数据和消费者消费消费数据,共用同一个锁对象。LinkedBlockingQueue底层维护了一个链表,当生产者线程往队列中生产数据时,消费者线程同时消费队列中的数据,原因就是生产者和消费者采用了额独立的锁来控制数据的同步。关于ArrayBlockingQueue和LinkedBlockingQueue的异同,请移步我的另一篇博客:https://blog.csdn.net/weixin_43729854/art...原创 2020-08-22 20:31:37 · 434 阅读 · 0 评论 -
ArrayBlockingQueue和LinkedBlockingQueue的区别与联系
目录相同点不同点1、由上图可以看出,他们的锁机制不同2、他们的底层实现机制也不同3、构造时的区别4、统计元素的个数其他问题5、LinkedBlockingQueue双锁带来的好处?6、为何ArrayBlockingQueue无法实现锁分离机制?相同点1、LinkedBlockingQueue和ArrayBlockingQueue都实现了BlockingQueue接口;2、LinkedBlockingQueue和ArrayBlockingQueue都是可阻塞的.原创 2020-08-08 18:11:30 · 2223 阅读 · 2 评论 -
Java--List接口总结
目录一.ArrayList1.概述2.扩容二.LinkedList1.概述2.属性三.Vector1.概述2.成员变量四.Stack1.概述2.常用方法一.ArrayList1.概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小,允许插入数据为null。...原创 2020-08-06 12:49:27 · 212 阅读 · 0 评论 -
详解ArrayDeque_一个Collection接口下的万金油容器
目录一、概述二、底层实现三、具体使用一、概述ArrayDeque是Collection接口下Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。同时,ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack;也可以作为队列来使用,效率高于LinkedList。需要注意的是,ArrayDeque不支持null值。ArrayDeque也可以使...原创 2020-06-03 18:38:19 · 329 阅读 · 0 评论 -
TreeMap集合下常用的方法总结
一、找到第一个比指定的key小的Entrymap.lowerEntry()二、找到第一个比指定的key小的keymap.lowerKey()三、找到第一个小于或等于指定key的Entrymap.floorEntry()四、找到第一个小于或等于指定key的keymap.floorKey()五、找到第一个大于或等于指定key的Entrymap.ceilingEntry()六、找到第一个大于指定key的Entrymap.higherEntry()七、获取原创 2020-06-03 08:49:37 · 2285 阅读 · 0 评论 -
Map接口下集合的要点总结
一.Map接口下的集合的特点1.存储的集合都是双值,即都为key-value结构。2.无序(TreeMap可以排序),键不能重复,值可以重复,没有继承Collection接口。HashMap 异步 线程不安全只允许一条记录的键为NULL Hashtable 同步 线程安全 key和value不可以为空 TreeMap 可以排序 不允许键为NULL 二、哈希由于Map接口下所有元素存放的位置都是由key决定的,那么通过...原创 2020-06-02 18:20:14 · 287 阅读 · 0 评论 -
如果重写equals()方法,必须重写hashcode()方法的必要性
首先,这样做是为了提高equals()方法的比较效率。 字符串对象的哈希码根据以下公式计算:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] 重写hashcode方法,先进行hashcode比较,如果不同,那么就没必要在进行equals的比较了,这样就大大减少了equals比较的次数,这对比需要比较的数量很...原创 2020-03-04 11:46:42 · 149 阅读 · 0 评论 -
HashMap相关知识总结
目录一.数据结构和节点类型二.hash值的计算方法三.解决哈希冲突的链地址法四.扩容五.重写equals()方法,必须重写hashcode()方法HashMap继承自AbstractMap接口,是Java中常用的集合之一,对于<key,value>这样的键值对数据,存储起来十分方便。这里我就结合源码,总结一下HashMap的相关知识。一.数据结构和节点类型HashMap是由一个 由链表组成的数组 构成的,图示如下:源码中的节点类型定义如下: tr原创 2020-05-20 13:38:56 · 128 阅读 · 0 评论 -
List接口下的各个集合的特点
目录ArrayListLinkedListVectorStack数组与集合的区别ArrayList特点:继承于AbstractList,它还实现了RandomAccess, Cloneable, java.io.Serializable等接口。public class ArrayList<E> extends AbstractList<E>...原创 2020-05-06 10:31:55 · 181 阅读 · 1 评论