Java,调用对象方法,ar arylylist

基于这个问题增量变量名称?

我有一个arraylist’peopleHolder’,它拥有各种“人物”物品。 我想基于for循环自动创建’person’对象。 我做了以下

peopleHolder.add(new person()); 

我想从人类课程中调用方法。 例如person.setAge; 如何通过arraylist调用此类方法? 我想方法为每个对象设置值。 我看过这个答案: Java – 调用ArrayList中对象的方法
但我认为解决方案依赖于调用静态方法,并且我希望在存储对象值时让对象特定于该对象。

谢谢

如果要在列表中的所有对象上调用某个方法,则需要先对它们进行迭代,然后在每个元素中调用方法。 让我们说你的清单看起来像这样

 List peopleHolder = new ArrayList(); peopleHolder.add(new person()); peopleHolder.add(new person()); 

现在我们列表中有两个人,我们想设置他们的名字。 我们可以这样做

 for (int i=0; i 

或使用增强的for循环

 int i=0; for (person p: peopleHolder){ p.setName("newName" + i++); } 

顺便说一下,你应该坚持使用Java命名约定并使用camelCase风格。 类/接口/枚举应以大写字母开头,如Person ,变量/方法名称的第一个标记应以小写字母开头,而其他大写字母peopleHolder

这是你想要的 ?

 for(person people: peopleHolder){ people.setAge(25); } 

我有几个人物。 我使用循环在’people’arrayList中自动创建新的person对象。 我想访问定义对象的各种特征的方法(setAge,setHeight等)。如何访问我在arraylist中创建的对象的方法

与您创建的方式相同。

对于列表中的每个人,您都可以迭代它

 for(Person person : peopleHolder){ person.setHeight(..); person.setAge(..) } 

对于列表中的某个索引,可以使用get(int index)因为列表是一个arrayList,然后是O(1)。

  Person p = peopleHolder.get(someIndex); // where 0 <= someIndex < peopleHolder.size() p.setHeight(..); 

按照您的代码,您可以执行此操作

 ArrayList personHolder = new ArrayList(); for (int i = 0; i < 10; i++) { personHolder.add(new Person()); } // If you want user input, do it in the loop below for (Person p : personHolder) { p.setAge(30); }