java - java中.push()的等效函数?
问题描述
我正在尝试拥有一个内部包含对象的动态数组。我需要一个与 Javascript 中的 .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;
}
//-----------------------------------------------------------------
解决方案
Java 数组中的数组是固定大小的。你必须指定大小,然后不能扩展它们。不幸的是更改了声明新数组所需的大小。
但幸运的是,Java 提供了不同的数据结构,例如列表、集合,它们可以随着大小的增加而动态增长。
例如
ArrayList<Pipe> pipes = new ArrayList();
pipes.add(new Pipe());
pipes.add(new Pipe());
for(Pipe pipe : pipes){
pipe.update();
}
推荐阅读
- makefile - 在make all中,先组成哪个目标
- ionic-framework - 用离子中的观察位置更新谷歌标记
- c# - Globalhotkey - 从文本文件中读取想要的热键
- python - django服务器启动时如何启动后台线程?
- selenium - 使用 Selenium 从数据库填充的多个下拉列表中的处理选项
- android - 将信用卡添加到 Google Pay
- scala - 类中表达式的用例是什么而不将其存储在值/变量中?
- python - pyqt4 QTabWidget addtab不成功
- c++ - 是否可以在 for 循环中添加两个浮点数?
- ios - Cordova iOS 13 拾取视频空文件内容