zoukankan      html  css  js  c++  java
  • 多级关联打印树形结构

    package xyrj.tree.utils;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
    * @description
    * 
    * @classname PrintTree 
    * @author maoyun0903<maoyun19900818@foxmail.com>
    * @date 2012-12-16 下午02:14:15 
    * @version 1.0
    */
    public class PrintTree {
    
    /**
    * @field    整个tree模块中所有的记录
    */
    private static List<Map<String,String>> _totalList;
    
    /**
    * @field    生成的树形结构集合
    */
    private static List<Map<String,String>> treeList;
    
    /**
    * @field    深度
    */
    private static int _level = 0;
    
    /**
    * @field    树形前缀符
    */
    private static String _prefix="|";
    
    /**
    * @field    树形修饰符
    */
    private static String _fix="-";
    
    /**
    * 构造方法(传所有记录数组集合)
    *
    * @description 
    * 
    * @param totalList
    */
    public PrintTree(List<Map<String,String>> totalList)
    {
    _totalList    =    totalList;
    treeList =    new ArrayList<Map<String,String>>();
    System.out.println("构造方法");
    }
    
    
    
    /** 
    * 打印树形结构
    * @description
    * @title main
    * @param @param args
    * @return void
    * @throws 
    */
    public static void main(String[] args) {
    
    List<Map<String,String>> listMap = new ArrayList<Map<String,String>>();
    Map map01    =    new HashMap<String,String>();
    map01.put("tree_id", "1");
    map01.put("tree_name", "湖南省");
    map01.put("parent_id", "-1");
    
    Map map02    =    new HashMap<String,String>();
    map02.put("tree_id", "2");
    map02.put("tree_name", "湖北省");
    map02.put("parent_id", "-1");
    
    Map map03    =    new HashMap<String,String>();
    map03.put("tree_id", "3");
    map03.put("tree_name", "常德市");
    map03.put("parent_id", "1");
    
    Map map04    =    new HashMap<String,String>();
    map04.put("tree_id", "4");
    map04.put("tree_name", "长沙市");
    map04.put("parent_id", "1");
    
    Map map05    =    new HashMap<String,String>();
    map05.put("tree_id", "5");
    map05.put("tree_name", "荆州市");
    map05.put("parent_id", "2");
    
    listMap.add(map01);
    listMap.add(map02);
    listMap.add(map03);
    listMap.add(map04);
    listMap.add(map05);
    
    PrintTree    printTree    =    new PrintTree(listMap);
    String str    =    printTree.genTree();
    System.out.println(str.toString());
    
    }
    
    /**
    * 打印最后树形结构
    * 
    * @description
    * 
    * @title genTree
    * @param @return
    * @return String
    * @throws
    */
    public static String genTree()
    {
    String father_id    =    "-1";
    //System.out.println("genTree"+_totalList.size());
    _genDiGuiList(father_id , 0);
    StringBuffer    printTree    =    new StringBuffer();
    //System.out.println("treeList"+treeList.size());
    for(int i=0 ; i < treeList.size() ; i++)
    {
    printTree.append("<option name=\""+treeList.get(i).get("tree_id")+"\">"+
    treeList.get(i).get("tree_name")+
    "</option>");
    }
    return printTree.toString();
    }
    
    /**
    * 递归遍历整个List集合
    * 
    * @description
    * 
    * @title _genDiGuiList
    * @param @return    经过处理后的Map集合数组
    * @return String
    * @throws
    */
    private static List<Map<String,String>> _genDiGuiList(String father_name,int count)
    {
    if(null != _totalList && _totalList.size() > 0)
    {
    for(int i = 0 ; i < _totalList.size() ; i++ )
    {
    _level=count;
    String str    =    "";
    String allStr    =    "";
    //System.out.println(_totalList.get(i).get("tree_name"));
    if((_totalList.get(i).get("parent_id")).equals(father_name))
    {
    //System.out.println(_level);
    if(_level>0)
    {
    for(int j=0;j<_level;j++)
    {
    str    += _fix ;
    }
    allStr    =    _prefix + str ;
    }
    _level++;
    //把totalList[i]取出赋值tree_name
    String field_id    =    _totalList.get(i).get("tree_id");
    String field_name    =    _totalList.get(i).get("tree_name");
    //System.out.println(field_id+"...."+field_name);
    Map<String,String> map    =    new HashMap<String,String>();
    map.put("tree_id", field_id);
    map.put("tree_name", allStr+field_name);
    treeList.add(map);
    //System.out.println(field_id);
    _genDiGuiList(field_id,_level);
    }else
    {
    continue;
    }
    }
    }
    return treeList;
    }
    }
  • 相关阅读:
    javascript的函数调用什么时候加括号、什么时候不加括号
    妙味——JS学前预热03
    妙味——JS学前预热02
    妙味——JS学前预热01
    springbootday06 mysql
    springboot04 Ajax json Jquery
    springboot02 Thymeleaf
    springbootDay03 cookie和session 购物车技术
    Linux 基本命令
    NodeJs06 高并发
  • 原文地址:https://www.cnblogs.com/xmaomao/p/2831832.html
Copyright © 2011-2022 走看看