我尝试使用数组在Java中创建优先级队列ADT。我不太了解Java,但我已经掌握了它。我唯一的问题是制作一个名为QueueElement的类的数组。我需要数组来处理任何数据类型,所以我创建一个新的整数ArrayList,例如:
ArrayQueue<Integer> AQ = new ArrayQueue<Integer>(10);
问题是我不能拥有一个通用类型T的数组,因为我需要知道数组中每个元素的优先级。所以我创建了一个名为ArrayElement的类,它包含数据(类型T)和优先级(类型为int)。 (优先级可以在1到5之间)。但它不会让我制作那个阵列。这是我的代码:
public class ArrayQueue<T> {
private QueueElement[] arr;
private int total, front, rear, MAX_SIZE;
public class QueueElement {
T data;
int priority;
public QueueElement(T d, int p) {
data = d;
priority = p;
}
}
//constructor
public ArrayQueue(int size) {
//it won't let me cast this array to the type QueueElement
arr = (QueueElement[]) new Object[size];
//arr = new QueueElement[size]; doesn't work either
front = 0;
rear = -1;
total = 0;
MAX_SIZE = size;
}
}
如果您对如何做到这一点有任何想法,那将对我有所帮助。感谢。