为什么在java中执行void(参见代码)方法后我的对象发生了变化?

时间:2017-01-25 02:35:11

标签: java object null

我正在尝试实现优先级队列。 我有一个插入一个具有特定优先级的元素,即pinsert(元素,优先级,PriorityQueue)。 当我执行:

 PriorityQueue test=init();
 pinsert(1,1,test);

添加元素并增加队列的大小(我有一个检查大小的方法) 在调用方法文本以打印元素之后出现问题:

 public static void text(PriorityQueue q){
    PriorityQueue p =q;
    while(length(p)>0){
        System.out.print(pfront(p)+" | ");
        premove(p);
    }
    System.out.println();
}

现在,当我键入以下内容时:

PriorityQueue test=init();
pinsert(1,1,test);
System.out.println("size before text() :" + test.size) 
text(test);
System.out.println("size after text() :" + test.size) 

我明白了:

 size before text() :1
 1 | 
 size after text() : 0

为什么后面的尺寸为0?我想它与参考

有关
PriorityQueue p =q;

0 个答案:

没有答案