map父子维护的ebom父子部件关系计算组套数量

news2024/9/27 21:22:50

map父子维护的ebom父子部件关系计算组套数量

使用ebom时候,把部件父子关系和安装数量维护在了map上面,要计算组套数量,需要递归从当前往上取出父级安装数量相乘,一直取到最顶层。

在这里插入图片描述
G的组套数量:GDB=322=12
E的组套数量:ECB=232=12
C的组套数量:CB=32=6
B的组套数量:B=2

public class CalUtil {

    /**
     * 计算组套数量
     * @param map key是部件, value是数组,第一个值时部件,第二个值是key的部件安装数量
     * @param key
     * @return
     */
    public static int getAccUom(Map<String,String[]> map, String key){
        int num = 1;
        if(map.get(key)!=null){
            num = Integer.valueOf(map.get(key)[1])*getAccUom(map,map.get(key)[0]);
        }
        return num;
    }

    public static void main(String[] args) {
        Map<String, String[]> map = new HashMap<>();
        map.put("B",new String[]{"A","2"});
        map.put("C",new String[]{"B","3"});
        map.put("D",new String[]{"B","2"});
        map.put("E",new String[]{"C","2"});
        map.put("F",new String[]{"C","3"});
        map.put("G",new String[]{"D","3"});

        System.out.println("G安装数量:"+ CalUtil.getAccUom(map,"G"));
        System.out.println("E安装数量:"+ CalUtil.getAccUom(map,"E"));
        System.out.println("F安装数量:"+ CalUtil.getAccUom(map,"F"));
        System.out.println("D安装数量:"+ CalUtil.getAccUom(map,"D"));
        System.out.println("C安装数量:"+ CalUtil.getAccUom(map,"C"));
        System.out.println("B安装数量:"+ CalUtil.getAccUom(map,"B"));
    }
}

执行结果:

G安装数量:12
E安装数量:12
F安装数量:18
D安装数量:4
C安装数量:6
B安装数量:2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何提高应用的用户留存

用户的留存率是我们应用内最重要的指标之一&#xff0c;是指有多少人在一段时间后还在使用该应用&#xff0c;它定义了我们的受众规模&#xff0c;让我们知道应用是否有增长的能力。 提高应用保留率的策略&#xff1a;1&#xff0c;推送通知&#xff0c;在适当的时候发送推送通…

计算机网络速成

更好的阅读体验 \color{red}{\huge{更好的阅读体验}} 更好的阅读体验 因特网概述 网络、互联网和因特网 网络&#xff1a;将多个计算机或计算机网络通过通信线路连接起来&#xff0c;使得它们可以相互通信和交换信息的系统。由若干节点&#xff08;Node&#xff09;和连接这些…

LInux:生成崩溃程序的core文件

core文件是linux系统下一种记录软件异常的机制&#xff0c;在进程运行崩溃时&#xff0c;系统会将coredump信息写入core文件。 这样就方便我们定位软件问题。 1. 设置core文件大小 使用ulimit -c可以查看当前core文件的大小 默认情况下&#xff0c;core文件的大小为0&#xf…

chatgpt赋能python:Python开发的SEO应用

Python开发的SEO应用 搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站所有者需要考虑的重要因素之一。随着搜索引擎算法的不断变化和演进&#xff0c;我们需要确保我们的网站能在各种搜索引擎中进行良好的排名。Python作为一门强大的编程语言&#xff0c;已经被广泛…

Databend v1.2 版本发布!Data + AI

各位社区小伙伴们&#xff0c;Databend 于 2023 年 6 月 29 日迎来了 v1.2.0 版本的正式发布&#xff01;相较于 v1.1.0 版本&#xff0c;开发者们一共新增了 600 次 commit&#xff0c;涉及 3083 个文件变更&#xff0c;约 17 万 行代码修改。感谢各位社区伙伴的参与&#xff…

跨境电商如何快速提升产品排名和转化率,打造爆款产品

中小卖家在跨境电商平台上经营时&#xff0c;经常会遇到提升销售瓶颈的问题。今天陈哥将分享一个快速打造爆款的方法&#xff0c;除了SEO优化&#xff08;关键词分析、优化标题、图片、产品描述和定价&#xff09;等方面的策略。同时&#xff0c;测评也是一个有效的手段&#x…

规则引擎是什么,常见的应用领域,你知道吗?

规则引擎是什么 规则引擎&#xff0c;规则引擎是企业数字化转型升级过程中非常必要的软件工具&#xff0c;是一种能够自动执行一定条件下的预设逻辑的技术&#xff0c;可以帮助企业在收到数据或事件时自动触发相关业务规则&#xff0c;其主要优势如下&#xff1a; 易于维护与…

2023年华中杯数学建模C题空气质量预测与预警解题全过程文档及程序

2023年华中杯数学建模 C题 空气质量预测与预警 原题再现 空气污染对人类健康、生态环境、社会经济造成危害&#xff0c;其污染水平受诸多因素的影响&#xff0c;如 PM2.5、PM10、CO、气温、风速、降水量等&#xff0c;探究 PM2.5 等污染物浓度的因素&#xff0c;更精准的预测…

山西电力市场日前价格预测【2023-07-04】

日前价格预测 预测明日&#xff08;2023-07-04&#xff09;山西电力市场全天平均日前电价为136.03元/MWh。其中&#xff0c;最高日前电价为280.29元/MWh&#xff0c;预计出现在00:15。最低日前电价为0.00元/MWh&#xff0c;预计出现在09:15-18:15。 以上预测仅供学习参考&…

速成!|量子粒子群优化算法及其实现(Matlab)

作者在前面的两篇文章中介绍了标准粒子群及其变体&#xff0c;**由于PSO算法需要设定的参数(惯性因子w&#xff0c;学习因子 c1&#xff0c;c2)太多&#xff0c;不利于找到待优化模型的最优参数&#xff0c;而且粒子位置变化缺少随机性&#xff0c;容易陷入局部最优。**针对这些…

花了 44 块钱,实现 Java 发送短信功能

个人项目&#xff1a;社交支付项目&#xff08;小老板&#xff09; 作者&#xff1a;三哥&#xff08;https://j3cod3.cn&#xff09; 本篇为从 0 到 1 的一个&#xff0c;用 Java 对接腾讯短信发送功能的一篇流程文章。而标题中的 44 大洋则是用来购买短信套餐&#xff0c;当然…

怎么用21zui工具为图片添加水印

有些小伙伴工作内容是推荐公司产品&#xff0c;在平台中发布产品图片的时候&#xff0c;应该为图片添加专属水印&#xff08;文字水印或者logo水印&#xff09;&#xff0c;为什么要这么做呢&#xff1f;因为添加水印可以保护我们的图片不被盗用&#xff0c;同时也有助于推广我…

(24)目标检测算法之YOLOv6 (2)量化与部署详解

目标检测算法之YOLOv6 (2)量化与部署详解 详解量化训练方式 详解部署方法&#xff1a;onnx 、openvnio、 tensorrt YLOLOv6目前发布的模型&#xff1a;从模型大小方面来看&#xff0c;可分为微小型(Nano)&#xff0c;小(Small)&#xff0c;中(Medium)&#xff0c;大模型(Larg…

【单周期CPU】LoongArch | 32位寄存器DR | 32位的程序计数器PC | 通用寄存器堆Registers | 32位RAM存储器

前言&#xff1a;本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中基本时序逻辑部件设计。 &#x1f4bb;环境&#xff1a;一台内存4GB以上&#xff0c;装有64位Windows操作系统和Vivado 2017.…

黑马微信小程序登录弹窗问题与解决的说明

1.问题 1.1开发者工具报错 [getFuzzyLocation] is not authorized如何解决&#xff1f; 1.2弹窗问题 2.解决方法 2.1开发工具报错问题 首先登录微信公众平台&#xff0c;找到开发管理。如下图 然后开通wx.getFuzzyLocation 申请模版&#xff0c;通过速度很多&#xff0c;…

24小时不定时价格监测如何做到

在做电商平台的数据监测时&#xff0c;品牌需要对线上监测的数据进行不定时监测&#xff0c;这是因为品牌做价格监测的目的是为了管控渠道&#xff0c;如果对店铺只能在特定的时间进行监测&#xff0c;那对于其他时间段的低价行为将不被发现&#xff0c;这也会使品牌渠道管控的…

【Redis】配置

&#x1f3af;Redis 配置 Redis 的配置文件位于 Redis 安装目录下&#xff0c;文件名为 redis.conf(Windows 名为 redis.windows.conf)。 1、查看配置 语法如下通过 config get 命令查看或设置配置项。 CONFIG GET 配置的名字 使用 * 号获取所有配置项 127.0.0.1:6379>…

Parsing error: Unexpected token :

如果你创建的是Vue3的项目还报这个错误的话&#xff0c;很可能就是.eslintrc.js配置的问题。 我为了省事把vue2项目的.eslintrc.js复制到vue3的项目了。。 .eslintrc.js module.exports {root: true,env: {node: true,},extends: [plugin:vue/vue3-essential,eslint:recomm…

【哈士奇赠书活动 - 29期】- 〖人工智能与ChatGPT〗

文章目录 ⭐️ 赠书 - 《人工智能与ChatGPT》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《人工智能与ChatGPT》 ⭐️ 内容简介 人们相信人工智能可以为这个时代的技术带来突破&#xff0c;而ChatGPT则使这种希望成为现实。现在&#xff0…

自定义View实战《弹幕》

自定义View实战《弹幕》 前言一、步骤讲解二、缓存优化三、弹幕框架DanmakuFlameMaster介绍DanmakuFlameMasterDanmakuFlameMaster的使用 四、初步实现的完整代码总结 前言 前面已经学习了自定义的View《渐变色的文字》是继承View的。现在我们在继承ViewGroup来实现我们的《弹…