精华内容
下载资源
问答
  • 方法一:……String hql = "select t.fsHostip, t.fiReserve1 from ...List ls = dao.getHibernateTemplate()。find(hql);Iterator it = ls.iterator();if(it.hasNext()){ // while 用这个的时候和下面的一样Ob...

    方法一:

    ……

    String hql = "select t.fsHostip, t.fiReserve1 from Thostip as t where 1 = 1";

    List ls = dao.getHibernateTemplate()。find(hql);

    Iterator it = ls.iterator();

    if(it.hasNext()){  // while 用这个的时候和下面的一样

    Object[] obj = (Object[]) it.next();

    String ip = (String) obj[0];

    Integer rs = (Integer) obj[1];

    System.out.println(ip +","+rs);

    }

    方法二:

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

    //    Object[] obj = (Object[]) ls.get(i);

    //    String ip = (String)obj[0];

    //    Integer rs = (Integer)obj[1];

    //    System.out.println(ip +","+rs);

    //   }

    展开全文
  • 1,java递归生成目录树 返回list<T> 递归方法返回List<T>类型 public List<ProductCategory> treeselect() { // 获取数据库表中的所有数据 List<ProductCategory> dataList = ...

    1,java递归生成目录树 返回list<T>

    递归方法返回List<T>类型

    public List<ProductCategory> treeselect() {
            // 获取数据库表中的所有数据
            List<ProductCategory> dataList = productCategoryMapper.selectAll();
            log.info("dataList--->>>" + dataList.toString());
            List<ProductCategory> ProductCategoryList = new ArrayList<>();
            // 先找到1级分类
            for (ProductCategory ProductCategory : dataList) {
                if (ProductCategory.getParentId() == 0) {
                    ProductCategoryList.add(ProductCategory);
                }
            }
            log.info("ProductCategoryList--->>>" + ProductCategoryList.toString());
            // 为一级菜单设置子菜单,getChild是递归调用的
            for (ProductCategory productCategory : ProductCategoryList) {
                productCategory.setChildren(getChilde(productCategory.getId(), dataList));
            }
            return ProductCategoryList;
        }
    

    递归方法获取子菜单

        private List<ProductCategory> getChilde(Long id, List<ProductCategory> rootList) {
            //子菜单
            List<ProductCategory> childList = new ArrayList<>();
            for (ProductCategory productCategory : rootList) {
                // 遍历所有节点,将父菜单id与传过来的id比较
                if (productCategory.getParentId().equals(id)) {
                    childList.add(productCategory);
                }
            }
            // 把子菜单的子菜单再循环一遍
            for (ProductCategory productCategory : childList) {
                productCategory.setChildren(getChilde(productCategory.getId(), rootList));
            }
            // 递归退出条件
            if (childList.size() == 0) {
                return null;
            }
            return childList;
        }
    

    查询的数据结果

    {
      "code": "0",
      "message": "成功",
      "data": [
        {
          "id": "3771306d-b43f-4eea-b759-d06cccb0d74f",
          "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
          "name": "技术",
          "weight": 1,
          "parentId": "top",
          "childList": [
            {
              "id": "7007496f-e438-4be1-95cd-2460346adafc",
              "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
              "name": "集成",
              "weight": 27,
              "parentId": "3771306d-b43f-4eea-b759-d06cccb0d74f",
              "childList": [
    			"childList": [
                {
                  "id": "7470fdbb-b7fa-4476-98aa-a54478dab960",
                  "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
                  "name": "计划与调度",
                  "weight": 16,
                  "parentId": "93cebf9d-2c9f-4316-975a-c8a97822f5b1",
                  "variable": 24
                },
                {
                  "id": "79d3006b-19df-46f6-aa68-891e2dc05963",
                  "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
                  "name": "安全环保",
                  "weight": 13,
                  "parentId": "93cebf9d-2c9f-4316-975a-c8a97822f5b1",
                  "variable": 27
                },
                {
                  "id": "b6ae80a7-9c75-466d-9025-82dc64e6321b",
                  "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
                  "name": "生产作业",
                  "weight": 26,
                  "parentId": "93cebf9d-2c9f-4316-975a-c8a97822f5b1",
                  "variable": 25
                }
    		  ]
              "variable": 17
            },
            {
              "id": "c109d13e-c1e3-4480-89eb-81f3f32ff2b5",
              "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
              "name": "信息安全",
              "weight": 27,
              "parentId": "3771306d-b43f-4eea-b759-d06cccb0d74f",
              "childList": null,
              "variable": 18
            },
            {
              "id": "f6075a8d-1301-4447-be78-06ee6bd013ac",
              "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
              "name": "数据",
              "weight": 46,
              "parentId": "3771306d-b43f-4eea-b759-d06cccb0d74f",
              "childList": null,
              "variable": 16
            }
          ],
          "variable": 11
        },
        {
          "id": "483d73d8-f5ce-4ff0-82d4-c17bafcc31f6",
          "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
          "name": "人员",
          "weight": 1,
          "parentId": "top",
          "childList": [
            {
              "id": "0046bad2-6e4b-4c3b-a4a5-92d3f39edd70",
              "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
              "name": "人员技能",
              "weight": 50,
              "parentId": "483d73d8-f5ce-4ff0-82d4-c17bafcc31f6",
              "childList": null,
              "variable": 15
            },
            {
              "id": "ad76e507-77c0-4846-b500-42f3675824af",
              "scaleId": "22fe7a08-667f-478f-b194-17b2667eb602",
              "name": "组织战略",
              "weight": 50,
              "parentId": "483d73d8-f5ce-4ff0-82d4-c17bafcc31f6",
              "childList": null,
              "variable": 14
            }
          ],
          "variable": 10
        }
      ],
      "timestamp": 1626937445890
    }
    

    2,java 求树中每一层的所有节点之和

    递归方法的参数为List类型,返回值为void

     	/**
         * 校验指标权值是否合法
         * @param list
         * @return
         */
        public void checkList(List<DiagnosisMetric> list){
            // 出口
            if(list.size() == 0){
                return;
            }
            // 校验权值和是否等于100
            if(checkWeight(list) != 100){
                String parentMetricName = getParentMetricName(list.get(0).getParentId());
                log.info("【"+parentMetricName+"】的下级指标权重和不等于1!");
                throw new BusinessRuntimeException(ResultStatus.DIAG_METRIC_WEIGHT_ERROR);
            }
            // 继续校验下一级指标
            for(DiagnosisMetric parent : list){
                List<DiagnosisMetric> childs = getChilds(parent);
                checkList(childs);
            }
        }
    
        /**
         * 校验同一级指标权重是否合法
         * @param metrics
         * @return
         */
        public Integer checkWeight(List<DiagnosisMetric> metrics){
            int sum = 0;
            if(metrics.size() > 0){
                for(DiagnosisMetric metric : metrics){
                    sum += metric.getWeight();
                }
                if(sum != 100){
                    log.error("指标权重不等于100:{}", JSONObject.toJSONString(metrics));
                }
                return sum;
            }
            return sum;
        }
    
    展开全文
  • java递归的使用 当某个类的存储可以以树形结构存储时,即某个类的属性存在存储本类列表的集合时,可使用此递归将所有子节点数据封装到第一层列表中。 /** * @deprecated 传入节点列表,将节点列表及其下所有子...

    java中递归的使用

    当某个类的存储可以以树形结构存储时,即某个类的属性存在存储本类列表的集合时,可使用此递归将所有子节点数据封装到第一层列表中。

        /**
         * @deprecated 传入节点列表,将节点列表及其下所有子节点封到原列表中;
         * @param nodes 节点list
         * @return 节点及其所有子节点list
         */
        public static List<Node> getAllNodes(List<Node> nodes) {
        	//不可使用增强for
            for (int i = nodes.size() - 1; i >= 0; i--) {
                Node node = nodes.get(i);
                if (!CollectionUtils.isEmpty(node.getChildren())) {
                    nodes.addAll(getAllNodes(node.getChildren()));
                }
                node.setChildren(null);
            }
            return nodes;
        }
    

    第一次写博客,希望自己可以坚持思考、学习、记录。

    展开全文
  • 一、递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。在做递归算法的时候,...

    一、递归算法设计的基本思想是:

    对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。

    在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

    关键要抓住的是:

    (1)递归出口

    (2)地推逐步向出口逼近

    二、递归算法实例

    (1)阶乘:

    要求:给定一个数值,计算出它的阶乘值,例如5的阶乘为5*4*3*2*1

    实现:

      // 利用递归实现一个数的阶乘值

    private static BigDecimal getNum(BigDecimal inNum) {

    if (inNum.compareTo(BigDecimal.ONE) == 0) {

    return inNum;

    }

    return inNum.multiply(getNum(inNum.subtract(BigDecimal.ONE)));

    }

    (2)Fibonacci数列:1,1,2,3,5,8,13……

    要求:找出数列中指定index位置的数值

    实现:

      // 利用递归实现了Fibonacci数列

    private static int fab(int index) {

    if (index == 1 || index == 2) {

    return 1;

    } else {

    return fab(index - 1) + fab(index - 2);

    }

    }

    (3)汉诺塔

    要求:汉诺塔挪动

    实现:

        private static final String DISK_B = "diskB";

        private static final String DISK_C = "diskC";

        private static final String DISK_A = "diskA";

        static String from=DISK_A;

        static String to=DISK_C;

        static String mid=DISK_B;

        public static void main(String[] args) {

            String input=JOptionPane.showInputDialog("please input the number of the disks you want me move.");

            int num=Integer.parseInt(input);

            move(num,from,mid,to);

        }

      // 利用递归实现汉诺塔

    private static void move(int num, String from2, String mid2, String to2) {

    if (num == 1) {

    System.out.println("move disk 1 from " + from2 + " to " + to2);

    } else {

    move(num - 1, from2, to2, mid2);

    System.out.println("move disk " + num + " from " + from2 + " to " + to2);

    move(num - 1, mid2, from2, to2);

    }

    }

    (4)排列组合

    要求:将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是"abc",

    则程序会输出

    abc

    acb

    bac

    bca

    cab

    cba

    实现:

        public static void permute(String str) {

        char[] strArray = str.toCharArray();

         permute(strArray, 0, strArray.length - 1);

      }

      // 利用递归实现,将输入的一个字符串中的所有元素进行排序并输出

    public static void permute(char[] list, int low, int high) {

    int i;

    if (low == high) {

    String cout = "";

    for (i = 0; i <= high; i++) {

    cout += list[i];

    }

    System.out.println(cout);

    } else {

    for (i = low; i <= high; i++) {

    char temp = list[low];

    list[low] = list[i];

    list[i] = temp;

    permute(list, low + 1, high);

    temp = list[low];

    list[low] = list[i];

    list[i] = temp;

    }

    }

    }

    总结递归算法来说,这个根就是那个出口,只要找到这个出口所在,那么算法自然而然就能水到渠成了。

    展开全文
  • java递归和反向递归

    2021-02-12 21:46:58
    /***说明方法描述:将list转为树tree结构**@paramallRrecords*@return*@time2016年5月10日下午6:00:35*@authoryangdong*/publicListuseListRecordToTree(ListallRrecords){ListlistParentRecord=newArrayList();List...
  • java递归查询方法

    2021-02-12 09:51:27
    那么对于默认第一章第一课第一节,我们这里使用一个递归函数将查询的结果存放到一个list中 /*** 根据给定的id,查询其下的第一课、第一节(不只适用于章课节三级,如果下面还有级别的目录,也可查 * * 询出) * *@...
  • JAVA递归list转成tree @GetMapping("/sbtree") @ApiOperation("查询所有设备信息并封装到树中") public R getTree() { //获取所有地区信息 List<Map> dqList = sbzlService.getTree(); //获取所有...
  • 重要:本文最后更新于2019-01-30 09:56:28,某些文章具有时效性,若有错误或已失效,请在下方留言或...一般都是遍历集合然后删除,今天给大家介绍两种Java使用递归删除集合中重复元素的方法。方法一:采用老式for...
  • Java递归删除

    2021-02-28 17:20:19
    ###Java递归删除文件public static void main(String[] args) {File file = new File("D:\\dir");recursiveDelete(file);}###recursiveDelete方法private static void recursiveDelete(File file) {if (file....
  • List<YourBean> resultList = new ArrayList<>(); YourBean 中属性: id, parentid, name, //递归获取其最上级 public YourBean getTheTop(YourBean target) { if (target.getParentid() =...
  • Java 递归取Children

    2021-07-29 09:52:10
    递归获得父子数状结构 public class RoleAndPermissionVO { /** * 权限id */ private String id; /** * 权限描述信息 */ private String permissionName; /** * 父编号 */ private String parentId; /*...
  • java递归list转tree

    2021-06-18 12:55:52
    * @param originalList 原始list数据 * @param keyName 作为唯一标示的字段名称 * @param parentFieldName 父级id字段名称 * @return 组装后的集合 */ public static <T> List<T> getTree(List<...
  • Java递归解压zip压缩包

    2021-11-19 17:39:57
    使用递归的方式进行解压,解压后得到的目录结构和压缩包目录结构完全一致,非常好用! package com.zhh.api.util; import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileOutputStream; ...
  • 递归是一个非常有用的知识点。写点实例帮助自己记忆中间有过程代码首先一个javapojo类package com.qcf.po;import java.util.HashSet;import java.util.Set;public class Depart {private long id;private String ...
  • java递归树状json

    2021-03-14 21:32:06
    一、建立递归树的实体类public class Tree implements Serializable {/****/private static final long serialVersionUID = 2944880335559089140L;private String key;//节点keyprivate String title;//节点名称...
  • JAVA 递归解析xml

    2021-02-12 18:22:09
    在日常开发中经常碰到xml解析,现提供递归解析xml类以供参考package cn.sunmeng;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java...
  • 本文提供一份递归遍历目录获取所有文件及目录的源代码:import java.io.File;import java.util.ArrayList;import java.util.List;/*** Created by Administrator on 2019/2/10.*/public class TestWalkDir {static ...
  • 使用场景:这个场景是在Excel一对多,多对多模板导出场景下遇到的,常见的场景...标记为自定义java对象我这里使用了ExcelDTO注解做标记,也可自定义实现接口的方式做标记3.获取集合最大深度4.测试public class Performan...
  • Java递归实现全排列

    2021-03-10 06:14:46
    最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。递归算法:将数据分为两部分,递归将数据从左侧移...import java.util.List;public class FullSort {...
  • java 递归删除树节点

    2021-12-02 14:55:38
    } } } /** * @Title: 遍历过滤组织(部门)树 * @Author: ken * @Description: * @Date: 2021/12/1 11:12 * @Param: [orgId, organizationList] * @return java.util.List **/ private List traverseOrgTree(Long ...
  • Java 递归 跳出死循环

    2021-07-19 08:41:56
    Java 递归 跳出死循环 学习了知道树形数据,如何遍历子集,生成List数据,如果数据里面是带各种循环的呢? 要如何处理? 如何跳出死循环? 要求: 根据当前环节id,比如18,找到前置路径: 17到11; 或是14的...
  • Java递归遍历树形结构

    2021-02-27 17:46:24
    } } 以上所述是小编给大家介绍的Java递归遍历树形结构的相关内容,希望对大家有所帮助! 更多Java递归遍历树形结构相关文章请关注PHP中文网! 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • java递归实现全排列

    2021-02-27 10:09:31
    import java.util.ArrayList;import java.util....import java.util.List;public class Test{private static String[] s = new String[]{"1","2","3","4"};private static int l = s.length;public static void ...
  • packagecom.message;importjava.io.File;importjava.util.ArrayList;importjava.util.Collections;importjava.util....importjava.util.List;importorg.apache.commons.io.FileUtils;public classMessageTes...
  • java递归生成目录树

    2021-02-12 22:35:20
    一、创建实体类public class TreeNode {protected int id;protected int parentId;protected int level;protected String name;protected String code;...protected List children = new ArrayList<&...
  • 实际上,我们也可以理解为如何将拥有父子关系的list转成树形结构,而这其中主要的方法就是递归! 1、实体对象: @Data public class Node { private Integer id; private String city; private Integer pid; ...
  • import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.DocumentException;import org.dom4j....import java.util.*;/*** Created by IntelliJ IDEA.* User: leizhimin* Date: 2008-4-1...
  • 例如区域的省市县联动,中,通过查询省的id,查处这个省下边的所有市以及市下边的县等操作,就可以通过递归算法来查询我使用的框架是ssm,主要是在service层做判断private List getRegionList(String id){List list=...
  • import java.io.File;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;/*** 读取下xml文档,获得document对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,779
精华内容 53,511
关键字:

java递归传list

java 订阅