JAVA 简单队列讲解

  1. 队列(Queue)在基本上来说它就相当于简单的模拟了人类排队的一个过程,它是遵循了先入先出的数据结构,Queue接口与List、Set接口是同一级别的,它们都是继承了Collection接口,并且Queue使用LinkedList类来实现Deque接口。

  2. LikedList(List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列)

  3. 队列有6种修饰符:add(新增)、element(获取元素)、offer(新增)、peek(获取首位元素)、poll(获取首位元素,并移除出队列)、remove(移除),其中element、offer、peek、poll是常用的,add和remove方法它们在执行失败的时候会抛出异常,所以在使用Queue队列的时候不建议使用。

  4. 首先,先创建一个声明一个队列以及它的类型和声明名称,并new一下它,然后在写入LikedList类,为空就好,一般在使用Queue队列的时候我们用的是它的声明名称来执行方法。
    接下来我们要写的是添加元素,在添加元素的时候推荐使用Queue的offer方法而不是使用add方法,原因是add方法在它执行失败的时候会抛出异常,所以在日常使用的时候尽量使用offer方法。
    最后将执行一下打印方法将这个队列打印出来。
    代码图以及执行效果图:
    在这里插入图片描述

  5. 接下来讲一下Queue中的element、peek、poll方法。

  6. element方法它执行的时候只能获取首位元素,在获取的过程中是不会将首位元素移除出列表,同时不能获取到除首位元素的其他元素。

  7. peek方法它与element方法是相同的,它在执行的时候只能获取首位元素,同时不能获取到除首位元素的其他元素。

  8. poll方法它就和element方法peek方法是不相同的了,poll方法它在执行的时候会获取首位元素并且将首位元素移除出队列,同时不会获取其他元素,它的在执行的一个过程中就相当于是在排队,先进来的就要先出去,这个过程就是排队的先入先出(FIFO)。
    代码以执行效果图:
    在这里插入图片描述
    以下是代码块部分:

public class QueueDemo {
	public static void main(String[] args) {
		Queue<String> queue =new LinkedList<>();
		queue.offer("同学A");
		queue.offer("同学B");
		queue.offer("同学C");
		queue.offer("同学E");
		queue.offer("同学F");
		System.out.println(queue);
		//element只能获取首位元素,并不会移除首位元素,同时不能获取其他的元素
		System.out.println("element="+queue.element());
		System.out.println(queue);//打印结果只是为了更直观的看见结果的不同性。
		//peek只能获取首位元素
		System.out.println("peek="+queue.peek());
		System.out.println(queue);
		//poll获取首位元素,并把首位元素移除队列,这就相当于先进先出.
		System.out.println("peek="+queue.poll());
		System.out.println(queue);
	}
}

以下是执行结果:

[同学A, 同学B, 同学C, 同学E, 同学F]

element=同学A
[同学A, 同学B, 同学C, 同学E, 同学F]

peek=同学A
[同学A, 同学B, 同学C, 同学E, 同学F]

peek=同学A
[同学B, 同学C, 同学E, 同学F]

本篇总结:以上就是本人在学习JAVA队列的简单讲解总结,有些代码还不熟悉,所以在讲解总结的过程中如有不足之处,麻烦各位大佬点评一下,本人看到了之后会将不足之处认真的再次总结一下,在下次的总结中会做到精益求精的精神将JAVA的详细处认认真真的讲解,在今后也会更加勤奋的学习好JAVA这门技术。

发布了29 篇原创文章 · 获赞 51 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_35426391/article/details/89363832