
Java集合框架库
Java集合框架库
Sampson_S
这个作者很懒,什么都没留下…
展开
-
【Java集合框架库】Set集合
Set集合Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。实际上Set就是Collection只是行为略有不同(Set不允许包含重复元素)。Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。Set集合的特征Set集合,基础自Collection。特征是插入无序,不可指定位置访问。Set集合的实现类可说是基于Map集合去写的。通过内部封装Map集原创 2020-07-23 14:43:08 · 338 阅读 · 0 评论 -
【Java集合框架库】PriorityQueue类
PriorityQueue类PriorityQueue是一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。该队列不允许使用 null 元素也不允许插入不可比较的对象(没有实现Comparable接口的对象)。PriorityQueue 队列的队头元素指排序规则最小那个元素。如果多个元素都是最小值则随机选一个。PriorityQueue 是一个无界队列,但是初始的容量(实际是一个Object[])原创 2020-06-17 21:26:16 · 489 阅读 · 0 评论 -
【Java集合框架库】ArrayDeque类
ArrayDeque类ArrayDeque继承于AbstractCollection类,其同时实现了Deque接口。Queue的结构是一个单端的队列,从一端进另一端出,Deque是一个双端队列。而ArrayDeque是一个使用循环数组实现的双端队列了。双端队列可以实现单端队列的先入先出的方式,也可以实现栈结构的先入后出的方式,使用比较灵活,看具体需求。ArrayDeque是线程非安全的,所以如果需要实现线程安全,就需要自己处理了。ArrayDeque的特点首先我们来看看ArrayDeque的继承结构:原创 2020-06-17 19:53:40 · 292 阅读 · 0 评论 -
【Java集合框架库】HashTable类
HashTable类HashTable同样是基于哈希表实现的,其中的每个元素是一个key-value对,内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。它在很大程度上和HashMap的实现差不多,不过相对的功能较少,目前已经很少使用了,下面来看看HashTable的具体内容。HashTable的特点HashTable的继承关系:public class Hashtable<K,V> extends Dictionary<K,V> im原创 2020-05-28 13:34:55 · 373 阅读 · 0 评论 -
【Java集合框架库】WeakHashMap类
WeakHashMap类在前面,我们了解了许多Map接口下的集合,而WeakHashMap从名字来看,它依旧与Map有关。不过它名字前面还有一个Weak,我们就更能自然而然的想到这里面还牵扯到一种弱引用结构,因此想要彻底搞懂,我们还需要知道四种引用。详细介绍请参考链接:Java中的四种引用。WeakHashMap是基于弱引用的,也就是说只要垃圾回收机制一开启,就直接开始了扫荡,看见了就清除。我们接下来先看看WeakHashMap和HashMap究竟有什么样的区别。WeakHashMap简介publi原创 2020-05-27 18:06:29 · 328 阅读 · 0 评论 -
【Java集合框架库】LinkedHashMap类和TreeMap类
LinkedHashMap在前面,我们了解到了HashMap的使用及原理,HashMap是一种非常常见、非常有用的集合,大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap。不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap插入的顺序,也就是HashMap在遍历时是无序的。 HashMap的这一缺点往往会给我们带来各种困扰,因为有些场景,我们期待一个有序的Map。这个时候,LinkedHashMap就闪亮登场了,它虽然增加了时间和空间上的开销,但是通过维护一原创 2020-05-21 14:18:52 · 424 阅读 · 0 评论 -
【Java集合框架库】HashMap类
HashMap类HashMap类是基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。它继承于AbstractMap类,实现了Map、Cloneable、java.io.Serializable接口。HashMap有两个参数影响其性能:初始容量和加载因子,初始容量是哈希表在创建时的容量,默认为16个大小。加载因子默认为0.75,当哈希表中的节点个数超过加载因子*当前节点个数时,需要进行2倍扩容操作。(除了不同步和允许使用 null 之外,Hash原创 2020-05-11 09:57:34 · 339 阅读 · 0 评论 -
【Java集合框架库】Vector类和Stack类
Vector类Vector是矢量队列,是JDK1.0版本添加的类,他继承于AbstractList,实现了接口库List,RandomAccess,和Cloneable。Vector实现了List,所以它能够为队列提供:增加,删除,修改,遍历等操作。Vector实现RandomAccess接口,他使队列能够快速访问(即通过索引值就能访问得到)。Vector实现了Cloneable接口,他...原创 2020-05-06 16:44:53 · 502 阅读 · 0 评论 -
【Java集合框架库】LinkedList类
LinkedList类LinkedList和ArrayList有一些相似,我们知道ArrayList是以数组实现,它的优势是查询性能高,劣势是按顺序增删性能差。如果在不确定元素数量的情况时,不建议使用ArrayList。这种情况下,我们就可以使用LinkedList了。LinkedList是以双向链表实现的。既然它是以链表来实现的,所以也会有链表的基本特性。又因为其是使用双向链表来实现的,所以...原创 2020-04-29 19:15:30 · 262 阅读 · 0 评论 -
【Java集合框架库】Java迭代器的使用
Java迭代器迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。迭代器作为一种设计模式,它可以用于遍历一个对象,而对于这个对象的底层结构不必去了解。Ja...原创 2020-04-28 13:36:22 · 195 阅读 · 0 评论 -
【Java集合框架库】ArrayList源码实现
ArrayList源码实现具体的ArrayList类的特点及详细介绍,请参考ArrayList类。在这里,仅仅是自己重新实现ArrayList相关操作的方法。属性我们都知道,ArrayList是通过模拟数组实现的动态变化的集合,因此它的底层实现仍然是数组。private Object[] element; //以数组模拟ArrayListprivate int size; //有效个数...原创 2020-04-22 18:51:28 · 222 阅读 · 0 评论 -
【Java集合框架库】ArrayList类
ArrayList类ArrayList是一个容量能够动态增长的动态数组。但是它又和数组不一样,它继承了AbstractList类,实现了List、RandomAccess、Cloneable、java.io.Serializable接口。继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。实现了RandmoAccess接口,即提供了随...原创 2020-04-20 18:26:35 · 327 阅读 · 0 评论 -
【Java集合框架库】集合概述
集合集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。集合和数组的区别:集...原创 2020-04-16 13:14:30 · 319 阅读 · 0 评论