首页 > 编程语言 >Java递归算法实例

Java递归算法实例

时间:2023-02-11 21:24:22浏览次数:48  
标签:map Java 递归 Map pid 实例 put new id

 public static void main(String[] args) {
        Map<String,Object> map = new HashMap<>();
        map.put("id",0);
        map.put("name","a");
        map.put("pid",55);
        Map<String,Object> map1 = new HashMap<>();
        map1.put("id",1);
        map1.put("name","aa");
        map1.put("pid",0);
        Map<String,Object> map2 = new HashMap<>();
        map2.put("id",2);
        map2.put("name","bb");
        map2.put("pid",0);
        Map<String,Object> map3 = new HashMap<>();
        map3.put("id",3);
        map3.put("name","aaa");
        map3.put("pid",1);
        Map<String,Object> map4 = new HashMap<>();
        map4.put("id",4);
        map4.put("name","bbb");
        map4.put("pid",2);
        List<Map<String,Object>> list = new ArrayList<>();
        list.add(map);
        list.add(map1);
        list.add(map2);
        list.add(map3);
        list.add(map4);

        List<Map<String, Object>> dg = dg(55, list);
        System.out.println(dg);

    }

    public static List<Map<String,Object>> dg(Integer id, List<Map<String,Object>> mapList){
        List<Map<String,Object>> childList = new ArrayList<>();
        for (Map<String,Object> map : mapList) {
            System.out.println(map.get("pid"));
            if((int)map.get("pid")== id){
                childList.add(map);
            }
        }

        for (Map<String,Object> map : childList){
            List<Map<String, Object>> childList1 = dg((Integer) map.get("id"), mapList);
            map.put("child",childList1);
        }
        if (childList.size()==0){
            return null;
        }

        return childList;
    }

执行结果:

 


 

 

 

标签:map,Java,递归,Map,pid,实例,put,new,id
From: https://www.cnblogs.com/wwwc/p/17112592.html

相关文章

  • idea集成maven插件 使用骨架创建maven的java工具 不使用骨架创建maven的java工程
    idea集成maven插件   使用骨架创建maven的java工具     new-->FIle-->Model选择Maven对勾选上要不不能使用骨架  找到这个,选上下一步   ......
  • 剑指 Offer 32 - I. 从上到下打印二叉树(java解题)
    目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如:给定二叉树: [3,9,......
  • 第 21 章 使用 Java 编写 Android 应用
    21.1Android的历史......................................35721.2编写Android应用.................................35821.2.1组织Android项目..................
  • 第 13 章 创建 Java2D 图形
    13.1Graphics2D类........................................22613.2绘制文本................................................22713.2.1使用防锯齿改善字体和图形......
  • 第 1 章 Java 基础
    1.1Java语言......................................................21.1.1Java的历史..........................................21.1.2Java概述....................
  • 第 2 章 Java 编程基础
    2.1语句和表达式............................................172.2变量和数据类型........................................182.2.1创建变量.........................
  • Java 多态
    目录1、多态的介绍2、多态的格式3、对象的强制类型转换4、instanceof运算符5、案例:笔记本USB接口1、多态的介绍多态(Polymorphism)按字面意思理解就是“多种形态”,即一个......
  • javaWeb04-作用域
    本主要讲述javaWeb项目的作用域作用域有:page【前端】,request【请求】,session【会话】,application【项目】主要介绍request,session和application作用域一.request作用域......
  • Javase需要注意的
    byteb=12;System.out.println(b);byteb2=(byte)270;System.out.println(b2);//14(1)a+=b可读性稍差编译效率......
  • Java基础知识点(三元运算符)
    ​三元运算符:​1.需求:定义一个变量记录两个整数的较大值。2.作用:可以进行判断,根据判断的结果得到不同的内容。​3.格式:关系表达式?关系表达式1:关系表达式2;      ......