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