java如何使用HashMap存取键值映射关系
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关java如何使用HashMap存取键值映射关系,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用HashMap存取键值映射关系简单来说,
千家信息网最后更新 2025年11月07日java如何使用HashMap存取键值映射关系
这篇文章将为大家详细讲解有关java如何使用HashMap存取键值映射关系,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
使用HashMap存取键值映射关系
简单来说,HashMap由数组和链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。如果定位到的数组位置不含链表,那么查找、添加等操作很快,仅需一次寻址即可,其时间复杂度为O(1);如果定位到的数组包含链表,对于添加操作,其时间复杂度为O(n)--首先遍历链表,存在即覆盖,不存在则新增;对于查找操作来讲,仍需要遍历链表,然后通过key对象的equals方法逐一对比查找。从性能上考虑,HashMap中的链表出现越少,即哈希冲突越少,性能也就越好。所以,在日常编码中,可以使用HashMap存取键值映射关系。
案例:给定菜单记录列表,每条菜单记录中包含父菜单标识(根菜单的父菜单标识为null),构建出整个菜单树。
/** 菜单DO类 */@Setter@Getter@ToStringpublic static class MenuDO { /** 菜单标识 */ private Long id; /** 菜单父标识 */ private Long parentId; /** 菜单名称 */ private String name; /** 菜单链接 */ private String url;}/** 菜单VO类 */@Setter@Getter@ToStringpublic static class MenuVO { /** 菜单标识 */ private Long id; /** 菜单名称 */ private String name; /** 菜单链接 */ private String url; /** 子菜单列表 */ private List childList;}/** 构建菜单树函数 */public static List buildMenuTree(List menuList) { // 检查列表为空 if (CollectionUtils.isEmpty(menuList)) { return Collections.emptyList(); } // 依次处理菜单 int menuSize = menuList.size(); List rootList = new ArrayList<>(menuSize); Map menuMap = new HashMap<>(menuSize); for (MenuDO menuDO : menuList) { // 赋值菜单对象 Long menuId = menuDO.getId(); MenuVO menu = menuMap.get(menuId); if (Objects.isNull(menu)) { menu = new MenuVO(); menu.setChildList(new ArrayList<>()); menuMap.put(menuId, menu); } menu.setId(menuDO.getId()); menu.setName(menuDO.getName()); menu.setUrl(menuDO.getUrl()); // 根据父标识处理 Long parentId = menuDO.getParentId(); if (Objects.nonNull(parentId)) { // 构建父菜单对象 MenuVO parentMenu = menuMap.get(parentId); if (Objects.isNull(parentMenu)) { parentMenu = new MenuVO(); parentMenu.setId(parentId); parentMenu.setChildList(new ArrayList<>()); menuMap.put(parentId, parentMenu); } // 添加子菜单对象 parentMenu.getChildList().add(menu); } else { // 添加根菜单对象 rootList.add(menu); } } // 返回根菜单列表 return rootList;} 关于"java如何使用HashMap存取键值映射关系"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
菜单
标识
对象
存取
数组
篇文章
复杂
名称
复杂度
性能
时间
更多
链接
哈希
冲突
处理
定位
不错
实用
主体
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全伴我行手抄报
浙江特种网络技术价目表
美国网络安全禁止
net连接数据库的方式
网络安全文档word
软件开发现状如何
吃鸡战场服务器异常怎么解决
中国网络安全现状和问题
浦东新区软件开发技术咨询流程
国土安全部 网络安全峰会
脏小豆服务器指令
手游登录服务器失败 错误码-1
西华县网络安全
游戏场景服务器
网络安全人才靠什么靠谱
网络安全教育素材大全
c 数据库通过时间范围查询
世界上有两个国家的服务器
关系数据库的基本知识
数据库中级工程师取得证书时间
服务器查看显卡运行
储存聊天记录的数据库结构
南京聊天软件开发源码
服务器硬盘维修多长时间
阜阳点餐系统软件开发哪家好
tbc可以服务器
天台定制软件开发生产过程
中国工商银行软件开发中心张宇
魔兽世界新服务器下载
如何更改设置个人服务器