日期:2014-05-20  浏览次数:20823 次

面试的题目 有点小难 望高手赐教
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 查找所有用户

------解决方案--------------------
因为有子部门,还有子子部门,肯定要用到递归了。
Java code

import java.util.ArrayList;
import java.util.List;

public class DEPT {

    private long   id;
    private String name;
    private List   depts = new ArrayList();
    private List   users = new ArrayList();

    public User find(long id) {
        User tmpUser = null;
        DEPT tmpDept = null;
        for(int i=0;i<users.size();i++)
        {
            tmpUser = (User)users.get(i);
            if(tmpUser.id == id)
                return tmpUser;
        }
        for(int i=0;i<depts.size();i++)
        {
            tmpDept = (DEPT)depts.get(i);
            tmpUser = tmpDept.find(id);
            if(tmpUser != null)
                return tmpUser;
        }
        return null;
    }
}

class User {
    public long   id;
    private String name;
    public DEPT    parent;
}