gpt4 book ai didi

java - 如何递归删除

转载 作者:行者123 更新时间:2023-11-30 10:35:43 25 4
gpt4 key购买 nike

 class User{
String name;
List<User> userList;
public User(String name) {
super();
this.name = name;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
@Override
public String toString() {
return "User [name=" + name + ", userList=" + userList + "]";
}
public void deleteUser(User user){
user=null;
}
}
public class TempTest {
public static void main(String[] args) {
User mainUser=new User("Main");
List<User> aUserList=new ArrayList<User>();
User e=new User("D");
aUserList.add(e);

List<User> mainUserList=new ArrayList<User>();
User a=new User("A");
a.setUserList(aUserList);
User b=new User("B");
User c=new User("C");
mainUserList.add(a);
mainUserList.add(b);
mainUserList.add(c);
mainUser.setUserList(mainUserList);
System.out.println(mainUser);
deleteUserRecursively(mainUser);
}

public static void deleteUserRecursively(User mainUser){
List<User> userList=mainUser.getUserList();
if(null!=userList){
for(User user:userList){
deleteUserRecursively(user);
}
}else{
mainUser.deleteUser(mainUser);
System.out.println("User Delete "+mainUser);
}
}
}

输出:

User [name=Main, userList=[User [name=A, userList=[User [name=D, userList=null]]], User [name=B, userList=null], User [name=C, userList=null]]]
User Delete User [name=D, userList=null]
User Delete User [name=B, userList=null]
User Delete User [name=C, userList=null]

问题:

我有用户和用户列表,用户列表中的用户可以有另一个用户列表,我想删除用户列表中可用的后续用户。我正在尝试递归删除用户对象,子对象对象已成功删除,如何在同一个递归调用中删除父对象。

最佳答案

更面向对象的方法是让 User 执行删除操作。

class User {
...
public void deleteUserRecursively() {
if (userList != null) {
for (User user : userList) {
user.deleteUserRecursively();
}
}
}
}

关于java - 如何递归删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40968423/

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