java如何使用HashMap存取键值映射关系
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关java如何使用HashMap存取键值映射关系,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用HashMap存取键值映射关系简单来说,
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
广州为想互联网科技有限公司
湖南永感互联网科技有限公司
互联网科技深圳
金融科技与互联网金融
亿策互联网科技
百单互联网科技有限公司
奔汉互联网科技
互联网科技实习生岗位职责
黑科技闪耀互联网之光
米聚互联网科技南京有限公司排面
燊美集互联网科技有限公司
互联网科技和法律行业
群盈汇互联网科技有限公司
滨湖区互联网智能科技产品有哪些
互联网科技圈年度人物
神州科技互联网有限公司
版纳互联网科技选哪家
保山互联网科技靠谱吗
福仕德教育科技互联网
互联网科技大佬云集
百单网互联网科技有限公司
中关村互联网科技集团
科技与互联网发展
高科技与互联网
互联网与未来科技
米客互联网科技
海南科技产业互联网平台
35岁以上互联网科技行业
互联网科技大佬云集
株洲百竞科技的互联网营销顾问