[英]update one subelement in an arrayList index
我正在尝试在ArrayList的索引内更新属性的值。 主要是,我试图使用set(index,e)尝试更新一个子元素,但是我似乎做不到。
我的第一个类文件包含arrayLists拥有的属性:
public class GenericMissile {
float currentX;
float currentY;
//set the starting location of the missile
//X Loc
public void setLocationX() {
currentX =(float) Math.ceil( Math.random()*801);
//Y Loc
}
public void setLocationY() {
currentY = -100;
}
}
另一个类如下所示:
import java.util.ArrayList;
public class GameManager {
ArrayList<GenericMissile> allM;
public static void main(String[] args) {
GameManager obj = new GameManager();
//create missiles
obj.createMissiles();
}
//add missile to arrayList
void createMissiles() {
//create arraylist of 25 Missiles
allM = new ArrayList<>();
GenericMissile build = new GenericMissile();
for(int i=0;i<25;i++) {
build.setLocationX();
build.setLocationY();
allM.add(build);
}
}
}
我想从索引更新一个子元素,但是,我不知道如何调用特定属性来更新它。
我尝试使用allM.set(0,___),但我不知道从GenericMissile类更新currentY属性的正确语法。
提前致谢
您不需要ArrayList.set()
方法。 相反,您可以通过调用ArrayList.get(int index)
来获取对象,并对返回的对象进行突变。 它还将反映ArrayList
内部的更改。 例如
allM = new ArrayList<>();
GenericMissile build = new GenericMissile();
for (int i = 0; i < 25; i++) {
build.setLocationX();
build.setLocationY();
allM.add(build);
}
GeneriMissile someMissile = allM.get(0);
someMissile.setLocation ... // do something with it
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.