2012-11-30 84 views
2

我是新来的java,我想从一个类中获取所有数据。Java - 如何遍历ArrayList添加元素?

这是我如何将数据添加到类:

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

回答

9
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. 
} 
1

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

你需要创建一个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()); 
} 
+1

+1显示实际迭代。 – Brian

1

介绍与人员名单和对象在循环添加到它

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()); 
} 
1
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()); 
} 
2

这么快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); 
}