首页  >  文章  >  Java  >  Java队列接口

Java队列接口

PHPz
PHPz原创
2024-08-30 16:04:211136浏览

队列接口是 util.java 包的成员。它是集合框架的一部分,用于扩展集合接口。由于集合接口是主接口,所以队列接口包含了它的所有方法。队列是 FIFO(先进先出)数据结构。队列表示一种数据结构,其实现方式使得元素可以插入到顺序中的最后一个位置。在队列中,最先插入队列的项目将首先被取出。 java中的Queue是一个接口;因此,它不能被实例化。 Queue接口主要由两个类实现,即LinkedList和PriorityQueue。它是一个有序的对象序列,类似于 java 列表。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法

在以下语法中,使用 LinkedList / PriorityQueue 类实例化对象 obj。在下面的两个 Queue 语法中,LinkedList 实现是标准的。

Queue qObj = new LinkedList();

Queue qObj = new PriorityQueue();

可以使用以下给定语法创建具有受限数据类型的队列实例。

Queue<String> q = new LinkedList<String>();

队列接口方法

下面给出队列接口的一些常用方法

  • add(): add() 方法用于向队列中插入元素。如果响应成功则返回true;否则,会产生异常。
  • element():element()是返回队列头元素的重要方法之一。如果队列为空,则会生成异常。在示例部分,我们可以看到 element() 方法是如何工作的。
  • offer(): 该方法也用于向队列中插入元素。 add() 和 Offer 之间的唯一区别是,如果 add 方法无法将元素添加到队列中,则会创建异常,而 Offer 方法则不会。
  • peek(): peek() 方法几乎与 element() 方法类似。它检查队列的头部。如果队列为空,则返回NULL
  • poll(): 此方法从队列前面删除一个元素并从队列中返回前面的元素。如果队列为空,则返回 null。
  • remove(): 此方法用于删除并返回队列的最前面的元素。如果发现该元素为空,则会创建异常。
  • size(): 此方法返回队列中可用元素的计数。

实现 Java 队列接口的示例

下面是实现java队列接口的示例:

示例#1

此示例展示了程序中如何使用不同的方法以及这些方法返回的内容。

  1. 创建 LinkedList 类型的队列实例。
  2. 进一步,通过add方法将不同的字符串元素添加到队列中。
  3. 在下一条语句中,使用 size() 方法显示队列的大小。
  4. 队列中的项目,队列的头元素显示在下一行。
  5. Remove 方法进一步用于从队列中删除元素。
  6. 接下来的两行分别显示队列中的可用项目、队列的头项目。

代码:

//importing packages
import java.util.*;
public class QueueInterfaceExample {
public static void main(String[] args){
Queue qObj = new LinkedList();
//adding element to the queue
qObj.add("Action");
qObj.add("speak");
qObj.add("louder");
qObj.add("than");
qObj.add("Words");
//items available in the queue
System.out.println("\nTotal item count in Queue: " + qObj.size());
//printing queue here
System.out.println("\nItems in Queue: " + qObj);
//printing the head element of the queue
System.out.println("\nHead item of the Queue: " + qObj.element());
//removing head element from the queue
qObj.remove();
//items available in the queue
System.out.println("\nAvailable item in Queue: " + qObj);
//items available in the queue after applying peek method
System.out.println("\nHead item of the Queue: " + qObj.peek());
//applying the poll method to the
qObj.poll();
//items available in the queue after applying poll method
System.out.println("\nAvailable item in Queue: " + qObj);
}
}

输出:

Java队列接口

示例#2

在这个例子中,我们可以看到如何将受限类型的元素添加到队列中。

代码:

//importing package here
import java.util.*;
public class QueueInterfaceExample2 {
public static void main(String[] args){
//initialize a Queue using a LinkedList
Queue<Integer> qObj = new LinkedList<>();
//adding element to the queue
qObj.add(50);
qObj.add(175);
qObj.add(1450);
qObj.add(2750);
qObj.add(10250);
//items available in the queue
System.out.println("\nTotal item count in Queue: " + qObj.size());
//printing queue here
System.out.println("\nItems in Queue: " + qObj);
//items available in the queue after applying poll method
System.out.println("\nAvailable item in Queue: " + qObj);
//declaring a integer variable here
Integer intVar = 1450;
//condition to check if element is available in the queue
if(qObj.contains(intVar)){
//items available in the queue after applying poll method
System.out.println("\nSpecified item is available in the Queue.");
}
//declaring a integer variable here
Integer intVar2 = 1500;
//condition to check if element is available in the queue
if(qObj.contains(intVar2)){
//items available in the queue after applying poll method
System.out.println("\nSpecified item is available in the Queue.");
}else{
//items available in the queue after applying poll method
System.out.println("\nSpecified item " + intVar2 + " is not available in the Queue.");
}
}
}

输出:

Java队列接口

示例 #3

本例中,尝试在Integer类型受限队列中添加String类型的元素。

代码:

importing package here
import java.util.*;
public class QueueInterfaceExample3 {
public static void main(String[] args){
//initialize a Queue using a LinkedList
Queue<Integer> qObj = new LinkedList<>();
//adding element to the queue
qObj.add(50);
qObj.add(175);
qObj.add(1450);
qObj.add(2750);
qObj.add("Happy");
//items available in the queue
System.out.println("\nTotal item count in Queue: " + qObj.size());
//printing queue here
System.out.println("\nItems in Queue: " + qObj);
//items available in the queue after applying poll method
System.out.println("\nAvailable item in Queue: " + qObj);
}
}

输出:

上述程序的输出将产生错误,因为不支持在 Integer 类型队列中插入 String 类型的元素。

Java队列接口

结论

在上面的文章中,队列接口描述得很清楚。它用于扩展集合接口。还给出了如何在队列接口中使用 FIFO。上面几节给出了队列接口的使用。文章中给出了一些例子来看看队列&队列方法是如何工作的。

以上是Java队列接口的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn