您的位置:首页 > 其它

循环实现递归

2013-04-25 01:19 302 查看
import java.io.File;

import java.util.HashMap;

import java.util.LinkedList;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONObject;

public class Test2 {

/**

* @param args

*/

public static void main(String[] args) {

StringBuffer sbf=new StringBuffer();

sbf.append("{");

sbf.append("\"var\":");

sbf.append("{");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"3\"").append(",");

sbf.append("\"name\":\"邮件系统开发部2\"").append(",");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"5\"").append(",");

sbf.append("\"name\":\"企业邮箱\"").append(",");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"6\"").append(",");

sbf.append("\"name\":\"企业邮箱1\"");

sbf.append("},");

sbf.append("{");

sbf.append("\"id\":\"7\"").append(",");

sbf.append("\"name\":\"企业邮箱2\"").append(",");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"8\"").append(",");

sbf.append("\"name\":\"企业邮箱3\"").append(",");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"9\"").append(",");

sbf.append("\"name\":\"企业邮箱4\"");

sbf.append("}");

sbf.append("]");

sbf.append("}");

sbf.append("]");

sbf.append("}");

sbf.append("]");

sbf.append("}");

sbf.append("]");

sbf.append("}").append(",");

sbf.append("{");

sbf.append("\"id\":\"4\"").append(",");

sbf.append("\"name\":\"平台开发部(pingtai)2\"");

sbf.append("}").append(",");

sbf.append("{");

sbf.append("\"id\":\"5\"").append(",");

sbf.append("\"name\":\"测试部\"").append(",");

sbf.append("\"deptList\":");

sbf.append("[");

sbf.append("{");

sbf.append("\"id\":\"6\"").append(",");

sbf.append("\"name\":\"测试部1\"");

sbf.append("}");

sbf.append("]");

sbf.append("}");

sbf.append("]");

sbf.append("}");

sbf.append("}");

System.out.println(sbf.toString());

Map<String, Class> classMap = new HashMap<String, Class>();

classMap.put("deptList", Dept.class);

classMap.put("dept", Dept.class);

Res resJson = (Res) JSONObject.toBean(getJsonObj(sbf.toString()), Res.class,classMap);

System.out.println(resJson.getVar().getDeptList());

List<Dept> lists=resJson.getVar().getDeptList();

long a = System.currentTimeMillis();

LinkedList list = new LinkedList();

for (int i = 0; i < lists.size(); i++) {

if(lists.get(i)!=null)

{

list.add(lists.get(i));

}

}

Dept tmp;

while (!list.isEmpty()) {

tmp = (Dept) list.removeFirst();

System.out.println("id:"+tmp.getId()+" name:"+tmp.getName());

if(tmp.getDeptList()!=null)

{

if (tmp.getDeptList().size()>0) {

List<Dept> file = tmp.getDeptList();

if (file == null)

continue;

for (int i = 0; i < file.size(); i++) {

if (file.size()>0)

{

list.add(file.get(i));

}

else

{

System.out.println(file.get(i).getName());

}

}

} else {

System.out.println(tmp.getName());

}

}

}

System.out.println(System.currentTimeMillis() - a);

}

public static JSONObject getJsonObj(String jsonStr)

{

return JSONObject.fromObject(jsonStr);

}

}

package com.ad.web.webmail.departUser.rmapi;

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

import org.apache.log4j.Logger;

import com.ad.web.webmail.departUser.pojo.request.Depart;

import com.ad.web.webmail.departUser.pojo.request.DepartUserfilterChar;

import com.ad.web.webmail.departUser.pojo.request.TreeBean;

import com.ad.web.webmail.departUser.pojo.request.UserInfo;

import com.ad.web.webmail.departUser.pojo.response.SellMalResp;

import com.ad.web.webmail.departUser.pojo.response.User;

/**

* 装请求数据封装成返回格式数据

*

* @author zxkj

*

*/

public class DepartUserProccess

{

private static final Logger log = Logger.getLogger(DepartUserProccess.class);

public static SellMalResp doAllDeptProcess(TreeBean treebean)

{

SellMalResp sellmalResp=new SellMalResp();

try

{

// 3.从treebean里拿到所有的人员信息

List<User> users=getAllUsers(treebean,2);

// 1.从treebean里拿到所有部门信息

List<User> dept = getDepts(treebean,1);

List<User> dept_temp =new ArrayList<User>();

if(dept!=null)

{

for(int i=0;i<dept.size();i++)

{

dept_temp.add(dept.get(i));

}

}

if(users!=null)

{

for(int k=0;k<users.size();k++)

{

dept_temp.add(users.get(k));

}

}

sellmalResp.setCode("S_OK");

sellmalResp.setVar(dept_temp);

}

catch(Exception e)

{

log.error("doAllDeptProcess is error:",e);

sellmalResp.setCode("ERROR");

return sellmalResp;

}

return sellmalResp;

}

/**

* 得到所有人员信息

* @param treebean

* @return

*/

@SuppressWarnings("unchecked")

public static List<User> getAllUsers(

TreeBean treebean,int type)

{

// 保存所有返回给客户端部门信息

List<User> usersList = new ArrayList<User>();

try

{

// 得到treebean中所有一级部门

List<Depart> departList =null;

if(treebean.getVar()!=null)

{

departList = treebean.getVar().getDeptList();

}

// 得到treebean中所有无部门人员信息

List<UserInfo> users = null;

if(treebean.getVar()!=null)

{

users = treebean.getVar().getUserList();

}

// 将所treebean中所有无部门的信息转为

if(users!=null)

{

for (int i = 0; i < users.size(); i++)

{

User u1 = new User();

u1.setEmail(DepartUserfilterChar.UserfilterChar(users.get(i).getEmail()));

u1.setId( users.get(i).getId());

u1.setName(DepartUserfilterChar.UserfilterChar(users.get(i).getFirstName()));

u1.setParentId(Long.valueOf("0"));

u1.setType(type);

usersList.add(u1);

}

}

// 得到所有部门下所属部门信息,并保存为resmail类型

LinkedList quelist = new LinkedList();

List<Depart> deptList = new ArrayList<Depart>();

if(departList!=null)

{

for (int i = 0; i < departList.size(); i++)

{

deptList.add(departList.get(i));

quelist.add(departList.get(i));

}

}

Depart tmp;

while (!quelist.isEmpty()) {

tmp = (Depart) quelist.removeFirst();

if(tmp.getDeptList()!=null)

{

List<Depart> childDepart = tmp.getDeptList();

for (int i = 0; i < childDepart.size(); i++)

{

deptList.add(childDepart.get(i));

quelist.add(childDepart.get(i));

}

}

}

for(int k=0;k<deptList.size();k++)

{

Depart dpart_inf =deptList.get(k);

List<UserInfo> d_user= dpart_inf.getUserList();

if(d_user!=null)

{

for(int n=0;n<d_user.size();n++)

{

User u1 = new User();

u1.setEmail(DepartUserfilterChar.UserfilterChar(d_user.get(n).getEmail()));

u1.setId( d_user.get(n).getId());

u1.setName(DepartUserfilterChar.UserfilterChar(d_user.get(n).getFirstName()));

u1.setParentId(dpart_inf.getId());

u1.setType(type);

usersList.add(u1);

}

}

}

}

catch(Exception e)

{

log.error("getAllUsers is error",e);

return usersList;

}

return usersList;

}

/**

* 得到所有部门信息转换为返回给前端的数据格式

*/

@SuppressWarnings("unchecked")

public static List<User> getDepts(TreeBean treebean,int type)

{

LinkedList quelist = new LinkedList();

List<User> deptList = new ArrayList<User>();

try

{

List<Depart> departList =null;

if( treebean.getVar()!=null)

{

departList = treebean.getVar().getDeptList();

}

if(departList!=null)

{

for (int i = 0; i < departList.size(); i++)

{

Depart depart = departList.get(i);

User dept = new User();

dept.setEmail("");

dept.setId(depart.getId());

dept.setName(DepartUserfilterChar.UserfilterChar(depart.getName()));

dept.setType(type);

dept.setParentId(Long.valueOf("0"));

deptList.add(dept);

quelist.add(depart);

}

}

Depart tmp;

while (!quelist.isEmpty()) {

tmp = (Depart) quelist.removeFirst();

if(tmp.getDeptList()!=null)

{

List<Depart> childDept = tmp.getDeptList();

for (int i = 0; i < childDept.size(); i++) {

User dept = new User();

dept.setEmail("");

dept.setId(childDept.get(i).getId());

dept.setName(DepartUserfilterChar.UserfilterChar(childDept.get(i).getName()));

dept.setType(type);

dept.setParentId(tmp.getId());

deptList.add(dept);

quelist.add(childDept.get(i));

}

}

}

}

catch(Exception e)

{

log.error("getDepts is error",e);

return deptList;

}

return deptList;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐