java中Set和队列接口,详细解析

BSO 2020-09-14 09:27:54 java常见问答 8951

随着时代的变化与发展,人们的工作与生活也发生了巨大的改变。尤其是新兴技术的应用,更是使世界发生了翻天覆地的变化。而说到新技术,就不得不提java编程语言了。今天就来为大家介绍java中Set和队列接口,详细解析。

首先来了解一下基本的概念。Set接口扩展自Collection,它和List的不同之处在于,规定了Set的实例不能包含重复的元素。在一个规则集内,一定不会存在两个相等的元素。AbstractSet是一个实现Set接口的抽象类,Set接口有三个具体实现类,分别是散列集HashSet、链式散列集LinkedHashSet和树形集TreeSet。接下来会分别讲述它们。

一、java.util.HashSet

1.HashSet(),HashSet(Colletion elements),HashSet(int initialCapacity):构造散列表

二、java.util.LinkedHashSet

LinkedHashSet是用一个链表实现来扩展HashSet类,它支持对规则集内的元素排序。要知道在HashSet中的元素是没有被排序的,但是LinkedHashSet中的元素可以按照它们插入规则集的顺序提取。

三、java.util.TreeSet

TreeSet扩展自AbstractSet,并且实现了NavigableSet。AbstractSet扩展自AbstractCollection,树形集是一个有序的Set,它的底层是一颗树,用红黑树实现,这样就能从Set里面提取一个有序序列了。在实例化TreeSet时,一般可以给TreeSet指定一个比较器Comparator来指定树形集中的元素顺序。树形集中提供了许多方便的方法。

然后再说一下队列。

一、java.util.Queue(接口)

1.boolean add(E element),boolean offer(E element):如果队列没有满,将元素添加到队列尾部

2.E remove(),E poll():如果队列不为空,删除并返回这个队列头部元素

3.E element(),E peek():如果队列不为空,返回这个队列头部元素

二、java.util.Deque

接口Deque,它是一个扩展自Queue的双端队列,支持在两端插入和删除元素。Deque接口由ArrayDeque和LinkedList这两个类实现,所以一般情况下可以使用LinkedList来创建一个队列。PriorityQueue类实现了一个优先队列,优先队列中元素被赋予优先级,拥有高优先级的首先被删除。

三、java.util.ProrityQueue

优先级队列中的元素可以按任意顺序插入,但是要按照排序的顺序进行检索。优先级队列由实现。堆是一个可以自我调整的二叉树,对树执行添加和删除操作,可以让最小元素移动到根(最小堆),而不必花费时间对元素进行排序。

以上就是关于java中set和队列接口的详细解析。如果你对java知识感兴趣,想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java队列有哪些?队列如何实现执行任务?

java队列实现方式实例展示,什么是阻塞队列?

java队列处理高并发怎么实现?