Java实现无限极分类


    /**
     * 递归
     */
    public static List<Object> getTree(List<Menus> list, String pk, String pid, String child, int root) {
        List<Object> tree = new ArrayList<Object>();

        for (Menus menus : list) {
            int menus_pid = menus.getpId();
            if (menus_pid == root) {
                int id = menus.getId();
                MenusCustom menusCustom = new MenusCustom();
                menusCustom.setId(menus.getId());
                menusCustom.setName(menus.getName());
                menusCustom.setpId(menus.getpId());
                menusCustom.setUri(menus.getUri());
                menusCustom.setChild(MenusUtil.getTree(list, pk, pid, child, id));
                tree.add(menusCustom);
            }
        }
        return tree;
    }

    // 利用重载设置默认参数
    public static List<Object> getTree(List<Menus> list) {
        return MenusUtil.getTree(list, "id", "pid", "child", 0);
    }

这是 Menus 类

public class Menus {
    private Integer id;

    private String name;

    private String uri;

    private Integer pId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri == null ? null : uri.trim();
    }

    public Integer getpId() {
        return pId;
    }

    public void setpId(Integer pId) {
        this.pId = pId;
    }
}

这是 MenusCustom 类

public class MenusCustom extends Menus {
    public Object getChild() {
        return child;
    }

    public void setChild(Object child) {
        this.child = child;
    }

    private Object child;

}

文章作者: Qliang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Qliang !
评论
 上一篇
闲置服务器挂eBesucher 闲置服务器挂eBesucher
关于eBesucherebesucher 是德国目前最著名的自动冲浪赚钱站,该站最低提现金额PAYPAL2 欧元,此站除了可以通过挂广告网站,还可以通过邮件交换的方式来赚取 BTP。换算方式:10000BTP=2€。 原因去年年底购买的腾讯
2018-07-18
下一篇 
centos搭建SoftEtherVpn centos搭建SoftEtherVpn
搭建流程一、选择 vpn 服务我选用的是softether 选择的版本为 linux 版本(只有英文版)SoftEther VPN Server 因为用的是 mac,在本地机上下载SoftEther VPN Server Manager
2018-06-20
  目录