java 集合(二)【Collection(一)【Queue】】

2.java.util.Collection

public interface Collection<E>
extends Iterable<E>

Collection 接口继承了 Iterable 接口。也就意味着,实现Collection 接口的类也间接实现了 Iterable 接口,也就是说它们都能作为 for-each-loop 的循环对象。

Collection 是集合层次结构中的根接口。集合表示一组对象,对象称为集合的元素。有些集合允许重复元素,有些则不允许。 有些是有序的,有些是无序的(不保证顺序)

方法名返回值描述
add(E e)boolean添加元素
addAll(Collection<? extends E> c)boolean将集合c中的所有元素添加到此集合中
clear()void清除所有元素
contains(Object o)boolean集合中是否包含指定元素
containsAll(Collection<?> c)boolean集合是否包含指定集合中的所有元素
isEmpty()boolean集合是否为空
iterator()Iterator返回集合的迭代器
remove(Object o)boolean删除集合中的某个元素
removeAll(Collection<?> c)boolean删除集合中与指定集合中相同的所有元素
retainAll(Collection<?> c)boolean保留集合中与指定集合中相同的元素
size()int返回集合中的元素数
toArray()Object[]返回包含集合中所有元素的数组

Collection 接口实现的类包括常见的 ArrayListLinkedListHashSetTreeSetLinkedHashSet 等。

2.1Queue(队列)

public interface Queue<E>
extends Collection<E>

Queue继承自Collection,用于表示队列一种(先进先出)的数据结构,除了基本的 Collection 操作之外,队列还提供额外的插入,提取和检查操作。不可以存null、不允许包含重复元素。

下面是常用的Queue接口方法及其描述:

方法名返回值类型描述
add(E e)boolean将指定元素插入此队列 。如果队列已满,则会抛出IllegalStateException异常
offer(E e)boolean将指定元素插入此队列 。 如果队列已满,则会返回false
remove()E检索并删除此队列的头部 。如果队列为空,则会抛出NoSuchElementException异常
poll()E检索并删除此队列的头部,如果此队列为空,则返回null
element()E检索但不删除此队列的头部 。如果队列为空,则会抛出NoSuchElementException异常
peek()E检索但不删除此队列的头部,如果此队列为空,则返回null
size()int返回队列中的元素数
contains(Object o)boolean如果此队列包含指定元素,则返回true
clear()void移除此队列中的所有元素
toArray()Object[]返回包含此队列所有元素的数组;返回数组按照队列元素排列顺序

上述方法是 Queue 接口中常用的方法,通过实现该接口,并重写其中的方法,即可定义自己的队列实现类。Queue 接口实现的类有很多,例如常用的有 LinkedListArrayDeque 等。

Queue 接口不允许插入 null 元素,也不允许包含重复的元素。

2.1.1 Deque(双端队列)

public interface Deque<E>
extends Queue<E>

继承了 Queue ,支持两端(首尾)元素插入和移除的线性集合。非线程安全

方法名返回值类型描述
addFirst(E e)void在双端队列的前面插入元素
addLast(E e)void在双端队列的末尾插入元素,类似于add(E e)
getFirst()E检索但不删除双端队列的第一个元素
getLast()E检索但不删除双端队列的最后一个元素
pop()E删除并返回双端队列的第一个元素
push(E e)void相当于addFirst(E e),在双端队列的前面插入元素
removeFirstOccurrence(Object o)boolean从双端队列中删除第一次出现的指定元素,如果不存在则保持不变
removeLastOccurrence(Object o)boolean从双端队列中删除最后一次出现的指定元素,如果不存在则保持不变

在这里插入图片描述

常见实现类 LinkedList

Deque的主要特点

双向操作、队列特性、栈特性、实现类(Java提供:ArrayDeque/LinkedList)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值