当前位置: 首页 > news >正文

java数据处理:Map<String, Object>、Map<String, List<Room>>、Map<String, Integer>

已知数据都存在WargameConfig.HallMap里。

一、Map<String, Integer>

需求:按照scenarioName进行分类,统计每种scenarioName下的Room对象有多少;
思路:统计一个名为WargameConfig.HallMap的集合中,每个不同场景名称(scenarioName)出现的次数。返回一个键值对映射(Map<String, Integer>),其中键是场景名称,值是该名称出现的次数。

    @Override
    public Map<String, Integer> getScenarioNameCounts() {
   
     	// 1. 创建一个空的HashMap,用于存储场景名称及其出现次数
        Map<String, Integer> scenarioNameCounts = new HashMap<>();
         // 2. 遍历WargameConfig.HallMap中的每一个键值对(房间ID与Room对象)
        for (Map.Entry<String, Room> entry : WargameConfig.HallMap.entrySet()) {
   
        	// 3. 处理每个 entry,获取当前遍历到的Room对象
            Room room = entry.getValue();
            // 4. 从Room对象中提取场景名称(scenarioName)
            String scenarioName = room.getScenarioName();
            // 5. 更新统计:将当前场景名称的计数加1
            scenarioNameCounts.put(scenarioName, scenarioNameCounts.getOrDefault(scenarioName, 0) + 1);
        }
        return scenarioNameCounts;
    }

关键
(1)entrySet():返回 Map 中所有键值对的集合,将 HallMap 转换为 Set<Map.Entry<String, Room>> 集合,每个元素是 Map.Entry<String, Room> 类型。
(2)Map.Entry :表示键值对:Map.Entry 是 Map 接口的静态内部接口,用于封装单个键值对实体。Map.Entry<String, Room>:表示一个键值对实体,包含 getKey() 和 getValue()和setValue() 方法。

 使用 entrySet 遍历,直接通过 Map.Entry 获取键和值
// 方式1:entrySet()(推荐)
for (Map.Entry<String, Room> entry : map.entrySet()) {
   
    String key = entry.getKey();
    Room value = entry.getValue()</
http://www.dtcms.com/a/67161.html

相关文章:

  • VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件
  • 【vue3学习笔记】(第150-151节)computed计算属性;watch监视ref定义的数据
  • LeetCode 力扣热题100 单词拆分
  • RocketMQ性能优化篇
  • 深度学习 bert流程
  • Spring Boot3.3.X整合Mybatis-Plus
  • 【Azure 架构师学习笔记】- Azure Databricks (18) --Delta Live Table 架构
  • Discuz建站教程之论坛头部logo跳转链接怎么修改?
  • Python多版本环境管理UV
  • Maven的继承和聚合
  • 55.HarmonyOS NEXT 登录模块开发教程(九):部署与发布
  • Qt信号与槽
  • 使用AI一步一步实现若依前端(13)
  • DeepSeek R1 与 ktransformers:结合苹果 M4 Mac 的 LLM 推理深度分析
  • 在 Windows 上使用 choco 安装 mkcert 并配置 Vue 运行HTTPS
  • HCIA-11.以太网链路聚合与交换机堆叠、集群
  • 通俗易懂动态表单自定义字段解决方案
  • mapbox高阶,结合threejs(threebox)添加extrusion挤出几何体,并添加侧面窗户贴图和楼顶贴图
  • 【3DGS】SuperSplat本地运行+修改监听端口+导入ply模型+修剪模型+在线渲染3DGS网站推荐
  • Python----数据可视化(Pyecharts一:介绍安装,全局配置,系列配置)
  • 设置IDEA的内存
  • 代码随想录刷题day44|(二叉树篇)404.左叶子之和
  • LInux基础--apache部署网站
  • Adobe Photoshop下载安装和使用教程
  • 【GPT入门】第18课 langchain介绍与API初步体验
  • 初阶数据结构(C语言实现)——5.3 堆的应用(1)——堆排序
  • Java Web大文件下载:从卡顿到丝滑的优化之旅
  • Babylon.js的Shader入门一(从只有一个颜色的Shader说起)
  • 关于Go中使用goroutine协程实现的算法
  • 前端面试:axios 请求的底层依赖是什么?