IDEA的java代码:自己定义一个泛型类型的队列 MyQueue<T>,定义队列长度等成员变量,顶一个入队和出队等成员函数。写一个主类主函数,进行测试,建一个水果类Fruit类,定义若干个水果对象进行入队和出队操作。定义Student类,进行入队和出队测试。
时间: 2024-09-24 15:02:41 浏览: 53
C++利用两个栈实现队列的方法
在IntelliJ IDEA中,你可以创建一个自定义的泛型类型`MyQueue<T>`,其中`T`是一个类型参数代表任意类型。首先,你需要定义一个队列类,包含一些基本成员变量如队列长度,以及入队(`enqueue`)和出队(`dequeue`)的方法:
```java
import java.util.LinkedList;
public class MyQueue<T> {
private int queueLength;
private LinkedList<T> elements;
public MyQueue(int capacity) {
this.queueLength = 0;
this.elements = new LinkedList<>(容量);
}
// 入队方法
public void enqueue(T item) {
if (queueLength < elements.capacity()) {
elements.add(item);
queueLength++;
} else {
throw new IllegalStateException("Queue is full");
}
}
// 出队方法
public T dequeue() {
if (!elements.isEmpty()) {
T item = elements.removeFirst();
queueLength--;
return item;
} else {
throw new IllegalStateException("Queue is empty");
}
}
// 其他辅助方法(比如查看队头、队尾等)
}
```
接下来,在主类中进行测试,创建`Fruit`和`Student`类作为泛型类型`T`的例子:
```java
public class Main {
public static void main(String[] args) {
// 创建 Fruit 类的实例
class Fruit {}
MyQueue<Fruit> fruitQueue = new MyQueue<>(5);
// 测试 Fruit 入队和出队
fruitQueue.enqueue(new Fruit());
fruitQueue.enqueue(new Fruit()); // 应该抛出队满异常
// 创建 Student 类的实例
class Student {}
MyQueue<Student> studentQueue = new MyQueue<>(3); // 可能需要调整容量
studentQueue.enqueue(new Student());
studentQueue.enqueue(new Student());
// 同样尝试出队,验证是否正常工作
}
}
```
在这个例子中,你看到如何创建了一个`MyQueue`实例,分别用于存储`Fruit`和`Student`对象,并通过它们各自的入队和出队方法进行操作。注意,当队列达到预设容量时,尝试入队会抛出异常。
阅读全文