队列:
public static void main(String[] args) {
Queue<Integer> q = new LinkedList();
System.out.println("The first element is: " + q.peek());
q.offer(5);
q.offer(13);
q.offer(8);
q.offer(6);
q.poll();
System.out.println("The first element is: " + q.peek());
System.out.println("The size is: " + q.size());
}
-
offer,add 区别:
队列满的时候 offer返回false add抛出异常 -
poll,remove 区别:
remove() 和 poll() 方法都是从队列中删除第一个元素
poll() 方法在用空集合调用时不是抛出异常,只是返回 null。 -
peek,element区别:
element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。
栈
对于Stack,官方已经不推荐使用
现在可以用双端队列deque来实现队列和栈
双端队列(同时实现栈、队列)
双端队列
addFirst(E):void
在队头添加元素。addLast(E):void
在队尾添加元素。offerFirst(E):boolean
在队头添加元素,并返回是否添加成功。offerLast(E):boolean
在队尾添加元素,并返回是否添加成功。removeFirst():E
删除队头元素,并返回删除的元素,如果队列为null,抛出异常。removeLast():E
删除队尾元素,并返回删除的元素,如果队列为null,抛出异常。pollFirst():E
删除队头元素,并返回删除的元素,如果队列为null,返回null。pollLast():E
删除队尾元素,并返回删除的元素,如果队列为null,返回null。getFirst():E
获取队头元素,如果队列为null将抛出异常。getLast():E
获取队尾元素,如果队列为null将抛出异常。peekFirst():E
获取队头元素,如果队列为null将返回null。peekLast():E
获取队尾元素,如果队列为null将返回null。removeFirstOccurrence(Object):boolean
删除第一次出现的指定元素,并返回是否删除成功。removeFirstOccurrence(Object):boolean
删除最后一次出现的指定元素,并返回是否删除成功。
队列
因为deque实现了queue的接口所以使用起来和queue基本一致
add(E):boolean
在队尾添加元素,添加成功返回true,如果队列已满无法添加则抛出异常。offer(E):boolean
在队尾添加元素,添加成功返回true,如果队列已满无法添加则返回false。remove():E
删除队头元素,并返回删除的元素,如果队列为null,抛出异常。poll():E
删除队头元素,并返回删除的元素,如果队列为null,返回null。element():E
获取队头元素,如果队列为null将抛出异常。peek():E
获取队头元素,如果队列为null将返回null。
栈
peek():E
获取队头元素,如果队列为null将返回null。push(E):void
栈顶添加一个元素。pop():E
移除栈顶元素,返回移除的元素,如果栈没有元素抛出异常。
Deque的实现类有两个:ArrayDeque
、LinkedList
ArrayDeque不支持null,会报错
当需要进行频繁的插入、删除:LinkedList
当频繁随机访问:ArrayDeque
本文地址:https://blog.csdn.net/qq_43357627/article/details/109270247
您可能感兴趣的文章:
- 创建Gradle工程出现Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradleXX'.问题解决
- spring boot 错误:Check your ViewResolver setup
- java实现判断一个整数是几位数,并按照逆序输出
- SpringBoot 2.0 报错: Failed to configure a DataSource: 'url' attribute is not specified and no embe
- Please, configure Web Facet first!idea报这错的解决办法!!
- [异常处理1]Error occurred during initialization of boot layer
- 解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 问题
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论