簡體   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