摘要: PriorityQueue是AbstractQueue的实现类,优先级队列的元素根据自然排序或者通过在构造函数时期提供Comparator来排序,具体根据构造器判断。PriorityQueue不允许null元素。 队列的头在某种意义上是指定顺序的最后一个元素。队列查找操作poll、remove、pe 阅读全文
posted @ 2021-02-17 22:46 Eleanor123 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1、TreeSet TressSet是一个基于Tree Map的Navigable Set实现。这些元素使用它们自然排序或者在创建的时提供Comparator进行排序,具体取决于使用的构造函数。此实现为基本操作add、remove和contains提供了log(n)的时间成本。 这个实现不是线程安全 阅读全文
posted @ 2021-02-17 22:33 Eleanor123 阅读(221) 评论(0) 推荐(0) 编辑
摘要: HashSet是Set接口的实现类,由哈希表支持(实际上Hash Set是Hash Map的一个实例)。它不能保证集合的迭代顺序,这个类允许null元素。 这个实现不是线程安全的,如果多线程并发访问Hash Set,并且至少一个线程修改了set,必须进行外部加锁。或者使用Collections.sy 阅读全文
posted @ 2021-02-17 22:19 Eleanor123 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 堆栈是后入先出的容器,它继承了Vector类,提供了通常用的push和pop操作,以及在栈顶的peek方法,测试stack是否为空的empty方法,和一个寻找与栈顶距离的search方法。 第一次创建栈,不包含任何元素。一个更完善,可靠性更强的LIFO栈操作由Queue接口和它的实现提供,应该优先使 阅读全文
posted @ 2021-02-17 22:15 Eleanor123 阅读(97) 评论(0) 推荐(0) 编辑
摘要: Linked List是一个双向链表,允许存储任何元素(包括null),它的主要特性如下: LinkedList所有的操作都是可以表现为双向的,索引到链表的操作将遍历从头到尾,视哪个距离近为遍历顺序。 这个实现也不是线程安全的,如果多个线程并发访问链表,并且至少其中的一个线程修改了链表的结构,那么这 阅读全文
posted @ 2021-02-17 22:10 Eleanor123 阅读(77) 评论(0) 推荐(0) 编辑
摘要: Vector同Array List一样,都是基于数组实现的,只不过Vector是一个线程安全的容器,它对内部的每个方法都简单粗暴的上锁,避免多线程引起的安全性问题,但是通常这种同步方式需要的开销也比较大,因此,访问元素的效率要远远低于Array List。 还有一点在扩容上,Array List扩容 阅读全文
posted @ 2021-02-17 22:05 Eleanor123 阅读(68) 评论(0) 推荐(0) 编辑
摘要: ArrayList是实现了List接口的可扩容数组(动态数组),它的内部是基于数组实现的,它的具体定义如下: public class ArrayList<E> extends AbstractList<E> implements list<E>, RandomAccess, Cloneable, 阅读全文
posted @ 2021-02-17 17:08 Eleanor123 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Collection是一个顶层接口,它主要用来定义集合的约定。 List接口也是一个顶层接口,它继承了Collection接口,同时也是ArrayList、linkedList等集合元素的父类。 Set接口位于与List接口同级的层次,它同时也继承了Collection接口。Set接口提供了额外的规 阅读全文
posted @ 2021-02-17 12:30 Eleanor123 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 实现此接口允许对象成为for-each循环的目标,也就是增强for循环,它是java中的一种语法糖。 1 package day10; 2 3 4 5 import java.util.ArrayList; 6 7 import java.util.List; 8 9 10 11 public cl 阅读全文
posted @ 2021-02-17 12:29 Eleanor123 阅读(97) 评论(0) 推荐(0) 编辑