等价于Java中的.push()函数?

时间:2019-03-17 19:40:17

标签: java

我正在尝试使用内部对象的动态数组。我需要一个与Java中的.push()函数等效的函数,但在Java中。这些错误发生在设置功能内部的pipe.push(new Pipe())中。

Bird bird;
Pipe[] pipe;
boolean keyDown = false;

  void setup() {
    size(800, 800);
    frameRate(60);
    bird = new Bird();
    pipe.push(new Pipe()); 
  }

  //------------------------------------------------------------

  void draw() {
    background(0);


    bird.gravity();
    bird.show();
    bird.edge();

  }

  //-----------------------------------------------------------

  void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == 32) {
      if(keyDown == false) {
        bird.jump();
        keyDown = true;
      }
    }
  }

  void keyReleased() {
    keyDown = false;
  }

  //-----------------------------------------------------------------

2 个答案:

答案 0 :(得分:2)

Java数组中的数组是固定大小的。您必须指定大小,然后才能展开它们。不幸的是更改了声明新数组所需的大小。

但是幸运的是Java提供了不同的数据结构,例如列表,该列表可以随着大小的增加而动态增长。

例如

    ArrayList<Pipe> pipes = new ArrayList();

    pipes.add(new Pipe()); 
    pipes.add(new Pipe()); 


for(Pipe pipe : pipes){
   pipe.update();
}

答案 1 :(得分:1)

这里:

pipe.push(new Pipe()); 

在Java中根本不可能。在Java中,数组的大小为固定。您不能动态添加/删除插槽。

如果需要,例如,可以使用List/AbstractList

除此之外,这里的真正答案是:不要从假设Java与JavaScript有任何关系开始。因此,当您想到“让我们在Java中使用数组”时,请先研究Java如何处理数组。不要以为JavaScript中有任何东西。