2014-11-29 2 views
2

Это одна из первых программ, которые я пишу сам. Я хочу сделать физический калькулятор, в котором многие объекты могут взаимодействовать друг с другом и давать пользователю возможность добавлять дополнительные объекты. Моя идея состоит в том, чтобы иметь цикл for, который проходит через каждый объект, потянув друг за друга, как это.Использование строк для вызова методов в Java

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} 
} 

Я знаю, что есть, вероятно, огромные синтаксические ошибки или логические ошибки в этом, но я хотел бы разобраться в тех самостоятельно. Есть ли способ ссылки на объекты со строками?

ответ

2

Есть ли способ, которым я мог ссылаться на объекты со строками?

Да, с помощью Map<String, SomeType>, таких как HashMap<String, SomeType>.

Подумайте, что это похоже на массив или ArrayList, но вместо использования индексов чисел вы должны использовать индексы String.

Теперь, глядя на ваш код, вам может быть лучше использовать простой массив 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} 
    } 
} 
Смежные вопросы