public class DEPT{
private long id;
private String name;
private List depts = new ArrayList();//存放DEPT 对象
private List users = new ArrayList();//存放USER 对象
pbulic user find(long id);//就是要实现的功能
.
.
.
}
public class User{
private long id;
private String name;
public DEPT parent;
}
假设DEPT 和 USER 类的每一个私有属性都定义了GET 和 SET 方法
在当前部门和子部门中查找给顶ID 的用户
pbulic user find(long id)
根据id 查找所有用户
意思设这样的:
根据id查找,不管有没有找到,都需要对子部门,以及子部门的子部门进行迭代。
因为在DEPT里包含了List depts ,depts 存放的是dept对象
------解决方案--------------------
代码在此,核心就是在find方法里调用子部门的find方法
没有测试过,可能有问题,lz有空自己测一下吧
- Java code
public User find(long id){ User user = null; // 现在当前部门的员工中查找 if(users!=null && users.size()>0){ for(int i=0; i<users.size(); i++){ user = (User) users.get(i); if(user.getId() == id) return user; } } // 如果没有在员工中找到,就在子部门中查找 Dept dept = null; if(depts!=null && depts.size()>0){ for(int j=0; j<depts.size(); j++){ dept = (Dept) depts.get(j); user = dept.find(id); if(user != null) return user; } } // 如果子部门中也没有找到,返回null return null; }