Java代码新建一个队列,队列中每个元素的属性有id和name,实现入队和出队等操作
时间: 2024-11-03 10:14:56 浏览: 7
在vue中封装的弹窗组件使用队列模式实现方法
在Java中,我们可以使用`java.util.Queue`接口来创建队列,其中最常用的是`LinkedList`或`ArrayDeque`实现。这里我将演示如何使用`LinkedList`来创建一个队列,同时包含每个元素有"id"和"name"属性,并实现入队(enqueue)和出队(dequeue)操作。
首先,我们创建一个自定义类`QueueElement`作为队列元素,包含'id'和'name'字段:
```java
import java.util.LinkedList;
import java.util.Queue;
public class QueueElement {
private int id;
private String name;
public QueueElement(int id, String name) {
this.id = id;
this.name = name;
}
// Getters and setters for id and name
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
@Override
public String toString() {
return "QueueElement{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
```
然后,我们可以创建一个队列并实现基本的操作:
```java
public class CustomQueue<T extends QueueElement> implements Queue<T> {
private LinkedList<T> elements;
public CustomQueue() {
elements = new LinkedList<>();
}
// Enqueue (add an element to the back of the queue)
public synchronized boolean enqueue(T item) {
if (item != null) {
elements.add(item);
return true;
} else {
return false;
}
}
// Dequeue (remove and return the first element from the front of the queue)
public synchronized T dequeue() {
if (!elements.isEmpty()) {
return elements.removeFirst();
} else {
return null; // Return null if the queue is empty
}
}
// Override toString method for better visualization
@Override
public String toString() {
return "CustomQueue{" +
"elements=" + elements +
'}';
}
}
// Usage example:
public static void main(String[] args) {
CustomQueue<QueueElement> queue = new CustomQueue<>();
QueueElement elem1 = new QueueElement(1, "Item1");
QueueElement elem2 = new QueueElement(2, "Item2");
System.out.println("Enqueueing...");
queue.enqueue(elem1);
queue.enqueue(elem2);
System.out.println(queue); // Output: CustomQueue{elements=[QueueElement{id=1, name='Item1'}, QueueElement{id=2, name='Item2'}]}
System.out.println("Dequeuing...");
QueueElement dequeued = queue.dequeue();
System.out.println(dequeued); // Output: QueueElement{id=1, name='Item1'}
System.out.println(queue); // Output: CustomQueue{elements=[QueueElement{id=2, name='Item2'}]}
}
```
阅读全文