JAVA 面试题目 貌似有点难 高手赐教
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;
}