繁体   English   中英

更新arrayList索引中的一个子元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM