从数组中的元素中提取键

时间:2014-04-05 11:34:09

标签: java arrays priority-queue

假设我有一个元素E的数组A,每个数组包含一个整数键和一些对象数据。 我想提取数组A的i元素的键,并比较像

这样的值
   A[i].key>somevalue

问题是我不知道执行此比较的正确操作。 在我的程序中,我可以通过键入

来访问元素的键
           E.key

因为我的A元素似乎是一个元素E我会认为第一个片段会起作用,但事实并非如此。

元素声明为

     public class Element {

         public int key;
         public Object data;

         public Element(int i, Object o){
         this.key = i;
         this.data = o;
         }
     }

数组的构造函数        公共类PQHeap实现PQ {        //构造     私人PQHeap [] pq;

    public PQHeap(int maxElms){
    pq = new PQHeap[maxElms];
}
   ...

某种方法

   private void IncreaseKey(Element e){
    if (e.key < pq[i].key){
                System.out.println("new key is larger than current key");
        }

例如,带有if语句的行,错误是“键无法解析或不是字段” 像pq.length这样的操作工作正常,而e.key本身也可以工作

1 个答案:

答案 0 :(得分:0)

好吧,数组声明为

PQHeap[] pq;

因此它不包含Element个实例,但包含PQHeap个实例。因此pq[i]的类型为PQHeap,而PQHeap没有key字段,因此编译错误。