您好,我有两个值对象类。
package org.array;
import java.util.List;
public class Father {
private String name;
private int age ;
private List<Children> Childrens;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Children> getChildrens() {
return Childrens;
}
public void setChildrens(List<Children> childrens) {
Childrens = childrens;
}
}
第二个是给 child 的
package org.array;
public class Children {
private String name;
private int age ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
并且我想打印那里的值 我在列表中嵌套了一个列表,在这里我只在对象中放置了一个值,而实际上我有很多值。所以我在父亲名单中嵌套了 child 名单。我怎样才能打印或获得 child 和父亲的值(value)。这是我的逻辑。
package org.array;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayDemo {
public static void main(String[] args) {
List <Father> fatherList = new ArrayList<Father>();
Father father = new Father();
father.setName("john");
father.setAge(25);
fatherList.add(father);
List <Children> childrens = new ArrayList<Children>();
Children children = new Children();
children.setName("david");
children.setAge(2);
childrens.add(children);
father.setChildrens(childrens);
fatherList.add(father);
Iterator<Father> iterator = fatherList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.toString());
}
}
}
最佳答案
您可以使用嵌套的 for
循环来完成这个。这是一个例子:
for (Father f : fatherlist) {
System.out.println("Father: " + f.getName());
System.out.println("Children:");
for (Children c : f.getChildrens()) {
System.out.println(c.getName());
}
}
使用 Iterator
方法,您将以这种方式完成它:
Iterator<Father> i = fatherList.iterator();
while (i.hasNext()) {
Father f = i.next();
System.out.println("Father: " + f.getName());
System.out.println("Children:");
Iterator<Children> ci = f.getChildrens().iterator();
while (ci.hasNext()) {
Children c = ci.next();
System.out.println(c.getName());
}
}
作为一般样式建议,我建议重命名 Children
类别为 Child
并重命名方法 getChildrens
和 setChildrens
在Father
至 getChildren
和 setChildren
分别。
我什至建议更进一步,删除 setChildren
方法并提供 addChild(Child child)
这样您就可以控制 List
的方法包含 child 的。这样做的好处是您可以保证 List
被实例化,这样您定义的这些循环就不会遇到 NullPointerException
在没有 child 被添加到特定的情况下 Father
实例。
关于java - 如何在java中迭代列表中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439409/