java集合源码
文章平均质量分 84
想飞的盗版鱼
这个作者很懒,什么都没留下…
展开
-
有关Set集合的一些
Set集合的底层实现①Set是一个接口,集成2于Collection,在Set集合内无法存储重复的元素, 不可重复(用equals()判断),并且是无序的。Set常用实现类有HashSet、LinkedHashSet、TreeSet②HashSet是哈希表实现的(不稳定),LinkedHashSet是链表实现的(按存储顺序存取),TreeSet是红黑树实现的(按排序顺序存取),通常我们称Set为单列集合。刚才HashSet为什么是不稳定的?因为HashSet的内部是采用hashmap的结构实现的,因为原创 2020-06-29 16:53:46 · 720 阅读 · 0 评论 -
comparable和comparator之间的区别
comparable和comparator之间的区别Java 中为我们提供了两种比较机制:Comparable 和 Comparator,二者都是用来实现对象的比较、排序。下面分别对Comparable 和 Comparator做具体介绍并总结。Comparable:Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现。如果add进入一个原创 2020-06-29 16:24:21 · 327 阅读 · 0 评论 -
关于linkedhashmap的一些
关于linkedhashmap的一些这篇博客包括的内容如下:1,LinkedHashMap,了解其 数据结构,以及LRU算法:2,LinkedHashMap与PriorityQueue的区别?1,LinkedHashMap,了解其 数据结构,以及LRU算法:LinkedHashMap=HashMap+双向链表。LinkedHashMap在不对HashMap被任何修改的情况下,给HashMap的任意两个节点间加上连线(before指针和after指针),使这些节点形成一个双向链表。Linked原创 2020-06-28 21:43:57 · 85 阅读 · 0 评论 -
关于concurrenthashmap的一些
关于concurrenthashmap的一些1,concurrenthashmap的实现原理:ConcurrentHashMap从JDK1.5开始随java.util.concurrent包一起引入JDK中,主要为了解决HashMap线程不安全和Hashtable效率不高的问题。众所周知,HashMap在多线程编程中是线程不安全的,而Hashtable由于使用了synchronized修饰方法而导致执行效率不高;因此,在concurrent包中,实现了ConcurrentHashMap以使在多线程编程中原创 2020-06-26 12:16:22 · 92 阅读 · 0 评论 -
关于HashMap的一些
关于HashMap的一些1,HashMap的概念:Hash表是基于Map接口实现的。该实现提供了所有可选的映射操作,并允许使用空值和空键。 这个类不能保证数据的顺序;尤其它不能保证顺序会随着时间的推移保持不变。HashMap的底层实现是:数组+链表,在jdk8以后又加入了红黑树HashMap 的特殊存储结构使得在获取指定元素前需要经过哈希运算,得到目标元素在哈希表中的位置,然后再进行少量比较即可得到元素,这使得 HashMap 的查找效率变得很高。下面是hashmap的存储方式2,HashMa原创 2020-07-12 17:56:22 · 75 阅读 · 0 评论 -
hashmap与concerrenthashmap的1.7和1.8区别
hashmap与concerrenthashmap的1.7和1.8区别参考自:https://blog.csdn.net/chenwendangding/article/details/99065623?utm_source=app原创 2020-04-22 14:23:27 · 263 阅读 · 0 评论 -
java集合(十一)---LinkedList源码解析
一、LInkedList的图如下所示:从上图可以看出,(1)LinkedList是List接口一个实现类,这意味着它可以是一个List集合,可以根据索引来随机访问集合中的元素。(2)LinkedList还实现了Deque接口,可以被当成双端队列来使用。因此,LinkedList既可以被当成“栈”来使用,也可以当成队列来使用。二、LinkedLIst、ArrayList、ArrayDeq...原创 2019-12-24 19:31:45 · 243 阅读 · 0 评论 -
java集合(十)---Queue与PriorityQueue、Deque源码解析
一、Queue与PriorityQueue、Deque的图如下所示:(1)从上图可以看出,Queue接口有两个实现类:PriorityQueue与Deque(2)ArrayDeque是Deque的一个典型的实现类二、Queue:Queue是什么?(1)Queue是具有队列特性的接口(2)Queue具有“先进先出(FIFO)”的特性(3)Queue所有新元素都插入队列的末尾,移除元素...原创 2019-12-17 16:01:19 · 320 阅读 · 0 评论 -
java集合(九)---ArrayList源码分析
一、关于ArrayList的图如下图所示:,WNA完全从图中可以看出,ArrayList是List的一个典型实现,完全支持List接口的全部功能。二、关于源码:ArrayList构造函数:成员方法解析:...原创 2019-12-16 19:13:15 · 233 阅读 · 0 评论 -
java集合(八)---AbstractList抽象类与Iterator、ListIterator接口辨析
我们知道,ListIterator是一个更加强大的Iterator子接口,它只能用于各种List接口的子类访问。因为ListIterator没有实现类,只有List接口中有一个返回值类型为ListIterator的listIterator()方法。而AbstractList作为List的直接子类,实现了listIterator()方法。在AbstractList中实现Iterator接口使用了一...原创 2019-12-05 16:07:42 · 150 阅读 · 0 评论 -
java集合(七)---List接口和ListIterator接口 && ListIterator接口和Iterator接口
一、List接口:List作为Collection接口的子接口,可以使用Collection接口中的全部方法,而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。其方法简单来说如下:注:以上方法是List集合里增加的一些根据索引来操作集合元素的方法,还有一些别的方法没有放到这里,具体还需查看API文档。对于List需要注意的几个点:List判断两个对...原创 2019-12-05 15:39:15 · 312 阅读 · 0 评论 -
java集合(六)---HashSet、TreeSet和LinkedHashSet
一、之间的简单关系:(1)HashSet、TreeSet是Set的两个典型实现,LinkedHashSet是HashSet的实现类。简单来说,HashSet的性能总是比TreeSet好(特别是最常用的添加、查询元素等操作),因为TreeSet需要额外的红黑树算法来维护集合元素的次序。只有当需要一个排序的Set时,才应该使用TreeSet,否则都应该使用HashSet。(2)对于LinkedHa...原创 2019-12-03 20:43:07 · 367 阅读 · 0 评论 -
java集合(五)---LinkedHashSet源码解析
一、关于LinkedHashSet的图如下图所示:(1)Linked原创 2019-12-03 11:09:24 · 303 阅读 · 0 评论 -
java集合(四)---EnumSet源码解析
一、关于EnumSet的图如下图所示:(1)EnumSet是一个专门为枚举类设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式或隐式地指定。(2)EnumSet的集合元素也是有序的,EnumSet以枚举值在Enum类内的定义顺序来决定集合元素的顺序。(3)EnumSet在内部以位向量的形式存储,这种存储形式非常紧凑,高效。因此Enum...原创 2019-12-02 19:50:45 · 251 阅读 · 0 评论 -
java集合(一)-----Iterable接口和Iterator接口
**首先是参考的链接:https://blog.csdn.net/xiaojie_570/article/details/79287518集合类图**其中, Iterable是在java.lang包下的接口Iterator是在java.util包下的接口Iterable接口包装了Iterator接口Iterable接口也就是说,Iterable接口为超级接口,这个接口只有一个方...原创 2019-10-30 17:02:32 · 498 阅读 · 0 评论 -
java集合(三)---TreeSet源码集合
关于TreeSet的图如下图所示:从图中可以看出,TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。1,TreeSet并不是根据元素的插入顺序进行排序的...原创 2019-11-23 16:20:21 · 412 阅读 · 0 评论 -
java集合(二)----HashSet源码解析
关于HashSet的图如下图所示:从上图可以看出HashSet是Set接口的一个实现类,HashSet按Hash算法来存储集合中的元素,因此具有好的存取和查找性能。HashSet具有以下特点:1,不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化2,HashSet不是同步的。就是说,如果多个线程同时访问一个HashSet,假设有两个或者两个以上的线程同时修改了HashSe...原创 2019-11-04 21:06:04 · 216 阅读 · 0 评论