树遍历统计总数

{

platformId: 3,

areaId: "",

areaName: "ROOT",

parentAreaId: "",

online: 0,

offline: 0,

total: 0,

sum: 0,

sumOnline: 0,

sumOffline: 0,

children: [{

platformId: 3,

areaId: "000",

areaName: "测试",

parentAreaId: "",

online: 2,

offline: 1,

total: 3,

sum: 0,

sumOnline: 0,

sumOffline: 0,

children: [{

platformId: 3,

areaId: "000002",

areaName: "测试2",

parentAreaId: "000",

online: 0,

offline: 0,

total: 0,

sum: 0,

sumOnline: 0,

sumOffline: 0,

children: []

},

{

platformId: 3,

areaId: "000001",

areaName: "测试1",

parentAreaId: "000",

online: 30,

offline: 0,

total: 30,

sum: 0,

sumOnline: 0,

sumOffline: 0,

children: []

},

{

platformId: 3,

areaId: "000000",

areaName: "测试0",

parentAreaId: "000",

online: 274,

offline: 10,

total: 284,

sum: 0,

sumOnline: 0,

sumOffline: 0,

children: []

}

]

}]

}

这种树结构的数据怎么遍历统计,每个结点的sum要是下级节点total的总和及本节点total的总和,每个节点的sumoffline要是下级节点及本节点offline的总和

private AreaCameraStatusSum count(AreaCameraStatusSum root){

int total = root.getTotal();

int offline = root.getOffline();

if(root.getChildren().size() < 1){

root.setSum(total);

root.setSumOffline(offline);

return root;

}

int sum = total;

int sumOffline = offline;

for(AreaCameraStatusSum child : root.getChildren()){

AreaCameraStatusSum tmp = count(child);

sum += tmp.getSum();

sumOffline += tmp.getSumOffline();

}

root.setSum(sum);

root.setSumOffline(sumOffline);

return root;

}

上面用递归的方法可以求出每个节点的和,不知道有没有更好的方法

相关阅读:

AbstractQueuedSynchronizer的Node状态

点阵造字怎么实现?

关于检索类似话题机制

handlebars each 中如何使用外层变量的值(作用域)?

jQuery append() 方法如何添加表格?为何添加了没效果?

二级域名指向个人中心如何做到的?

为什么最后一个var_dump()只能打印一个数组

将子查询改造成join连接查询

两个请求之间为什么会有一段间隔,浏览器到底在干什么在这段时间

微信的这种效果是怎么实现的

关于history.back()问题?

python中的函数如何这样传入参数?

nginx有可以调用系统命令的模块么

如何查看top进程是如何启动的?

dropzone.min.js 怎么能获取后台返回的数据?

php操作数据库的连接与释放怎样做比较好?

求 MONGODB shell的api

一个uid可以对应多个用户名吗?

Can not receive/send message from certain group anymore

如何实现点击“加载更多”?

java树结构遍历_树形结构,java_树遍历统计总数,树形结构,java - phpStudy相关推荐

  1. 视频教程-大型Java项目视频教程_王勇老师DRP项目教程完整版292集-Java

    大型Java项目视频教程_王勇老师DRP项目教程完整版292集 动力节点王勇老师,CCTV<影响力对话>栏目特约嘉宾,Java培训知名讲师,中国Java培训领军人物,北京动力节点创始人,董 ...

  2. 有向图的广度优先遍历_图的两种遍历方式

    1 引言 遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次. 在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则,依次访 ...

  3. 多叉树的前序遍历_二叉树的非递归遍历的思考

    封面图来自wikipedia 1 简介 二叉树的深度优先遍历(前序遍历.中序遍历.后序遍历)是一个比较基本的操作.如果使用递归的做法,很容易写出相应的程序:而如果使用非递归的做法,虽然也能写出相应的代 ...

  4. java数组搞笑_面试官:小伙子,给我说一下Java 数组吧

    Java 数组 Java 语言中提供的数组是用来存储固定大小的同类型元素. 1.声明数组变量 首先必须声明数组变量,才能在程序中使用数组. dataType[] arrayRefVar; // 首选的 ...

  5. java前沿技术_互联网百强企业架构师告诉你,Java应该这么学!云和数据超全面Java中级程序员学习路线图重磅发布!...

    作为常居编程语言排行榜第一名的编程语言,Java语言以其稳定性.健壮性著称,是一门非常成熟的编程语言,多年来一直是国际上众多企业的首选编程语言. Java语言不仅吸收了C++语言的各种优点,还摒弃了C ...

  6. 怎么安装java插件下载_向各位牛人请教:正常安装的Java,浏览器却不能加载插件怎么办?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我的Java安装并且正常运行,但浏览器无法加载某个重要的Java插件,Java控制台显示如下代码: Java 插件11.25.2.18 使用 JRE 版本 ...

  7. java 回归遍历_回归基础:代码遍历

    java 回归遍历 This article guides you through the basics of regression by showing code and thorough expl ...

  8. pat根据中序遍历和先序遍历_[leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树...

    [题目描述] 根据前序遍历和中序遍历树构造二叉树. 在线评测地址: 九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧​www.jiuzhang.com [样例 ...

  9. 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组

    温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...

最新文章

  1. json前台后台解析和拼接使用
  2. python中如果要多次输入文本,关于文本游戏:文本游戏 – 如果语句基于输入文本 – Python...
  3. SpringBoot应用日志通过logstash远程上传到ES
  4. 21岁就破解困扰人们300年难题的天才,却一生坎坷,怀才不遇,至死还得不到认可...
  5. 富文本 NSAttributedString
  6. 重构代码 —— 提取出类
  7. sublime3环境
  8. 用js判断空对象的几种方法
  9. Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
  10. 善待自己 改变命运的N个人生哲理
  11. 使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件
  12. 一个理工女宝妈和西牧乳业奶粉的故事
  13. 基于AM5728 DSP JTAG连接调试方法
  14. 又一大佬加盟OpenAI!他还是姚班学霸陈立杰的导师
  15. Linux虚拟地址和物理地址的映射
  16. glTexImage2D 函数详解
  17. 通过代码实现重启手机
  18. Jupyterlab安装和配置
  19. Matlab 结构体(struct)使用
  20. 选择隔离电源还是非隔离电源?

热门文章

  1. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
  2. JDBC PrepareStatement insert delete update DML
  3. 牛客网华为机考试题(1)
  4. Android之——自动挂断电话的实现
  5. CSS如何画一个三角形 + CSS如何画月亮
  6. 【095】Iconfont-阿里官方图标库和插画库
  7. 7. linux软件安装
  8. Windows - 将网页打包成 exe
  9. iPhone 手机内存,
  10. win7怎么更改计算机虚拟内存,win7怎么改虚拟内存_win7更改虚拟内存方法-win7之家...