繁体   English   中英

Java - 如何遍历ArrayList以添加元素?

[英]Java - How to iterate through an ArrayList for adding elements?

我是java的新手,我想从类中获取所有数据。

这是我向班级添加数据的方式:

String[] arrNames = { "Andrew", "James" ... };
...

for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);
}

如何获取我已添加到课程中的所有数据?

for(Person p : ???){
   System.out.println(p.getName());
}

您需要创建一个List<Person>并将循环中的每个person添加到该列表中。

List<Person> personList = new ArrayList<Person>();

for(int i = 0; i < arrNames.length; i++){
   // Create Person
   // Set Attributes
   personList.add(person);
}

然后遍历该列表以获取每个Person实例: -

for (Person person: personList) {
    System.out.println(person.getName());
}
List<Person> list = ArrayList<Person>();

for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);

   list.add(person); // adding each person object to the list.
}

如此快速的ArrayList入门:

List<Person> list = new ArrayList<Person>();
//Code to add stuff

for (Person p : list) {
  //Do something with p to your heart's desire.
}

要么

for (int i = 0; i < list.size(); i++) {
  Person reference = list.get(i);
}

添加东西,但你的循环是有缺陷的。 您只需用新数据覆盖person每次迭代。 您需要将其添加到列表中。

List<Person> people = new ArrayList<Person>();

for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);

   people.add(person);
}

Person放在列表中例如:

List<Person> persons = new ArrayList<Person>();
for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);
   persons.add(person);
}
for(Person p : persons){
   System.out.println(p.getName());
}

引入一个包含人员的列表,并在循环中添加对象

String[] arrNames = { "Andrew", "James" ... };
...

List<Person> persons = new ArrayList<Person();    
for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);

   persons.add(person);
}

然后你可以像这样迭代列表

for(Person p : persons){
   System.out.println(p.getName());
}
List<Person> people = Arrays.asList(new Person(1, "Andrew", "Surname1", "address1"), new Person(2, "James", "Surname2", "address2"));

for(Person p : people){
   System.out.println(p.getName());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM