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

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;
    }