gpt4 book ai didi

java - 如何在java中迭代列表中的列表?

转载 作者:行者123 更新时间:2023-12-03 19:06:00 25 4
gpt4 key购买 nike

您好,我有两个值对象类。

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并重命名方法 getChildrenssetChildrensFathergetChildrensetChildren分别。

我什至建议更进一步,删除 setChildren方法并提供 addChild(Child child)这样您就可以控制 List 的方法包含 child 的。这样做的好处是您可以保证 List被实例化,这样您定义的这些循环就不会遇到 NullPointerException在没有 child 被添加到特定的情况下 Father实例。

关于java - 如何在java中迭代列表中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com