具有通用数据类型的QueueElements数组

时间:2017-11-01 02:44:55

标签: java arrays generics

我尝试使用数组在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;
  }
}

如果您对如何做到这一点有任何想法,那将对我有所帮助。感谢。

0 个答案:

没有答案