这是我自己写的第一批课程之一。我想制作一个物理计算器,其中许多对象可以相互交互,并为用户提供添加更多对象的选项。我的想法是让一个for循环贯穿每个对象,像这样相互拉动。
for(int n=1; n<=totalObjs; n++){
objName = "object"+n;
for(int i=1; i<n; i++){
obj2Name = "object"+i
objName.getMass();
//getting mass and position from both
//calculations here}
for(int x=n+1; x<=totalObjs; x++){
//same stuff as in the previous for loop}
}
我知道可能存在巨大的语法错误或逻辑错误,但我想自己对它们进行排序。有什么方法可以用字符串引用对象吗?
答案 0 :(得分:2)
有什么方法可以用字符串引用对象吗?
是的,通过Map<String, SomeType>
等HashMap<String, SomeType>
。
将其视为类似于数组或ArrayList,但不是使用数字索引,而是使用字符串索引。
现在看一下你的代码,你可能最好使用一个简单的ArrayList或数组,因为你似乎试图使用数字索引。
如,
// assume a class called GravMass which has Mass, position, and momentum
List<GravMass> gravMassList = new ArrayList<GravMass>();
// fill your list
for(int i = 0; i < gravMassList.size() - 1; i++) {
GravMass gravMass1 = gravMassList.get(i);
int mass1 = gravMass1.getMass();
for(int j = i + 1; j < gravMassList.size(); j++){
GravMass gravMass2 = gravMassList.get(j);
int mass2 = gravMass2.getMass();
//getting mass and position from both
//calculations here}
}
}