fanjiu2020 2024-06-08 00:40 采纳率: 100%
浏览 3
已结题

关于java的map的疑问

java 的map1{1,张三
2,李四}
map2{id,1
name,张三}
{id,2
name,李四}
map1和map2是等效的吗,转成excel是下面这样的吗:
map1变成
1 2
张三 李四
map2变成
id name
1 张三
2 李四


  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-08 00:41
    关注

    引自免费微信小程序:皆我百晓生

    在Java中,Map是一种接口,它定义了如何存储、获取键值对的数据结构。不同的类可以实现这个接口,例如HashMap、TreeMap等。在你的例子中,你提到的两个Map,虽然它们存储的信息相同,但它们的表示方式不同。

    map1 是一个普通的键值对映射,其中键是整数,值是字符串:

    Map<Integer, String> map1 = new HashMap<>();
    map1.put(1, "张三");
    map1.put(2, "李四");
    

    当你将这个映射转换为Excel时,确实可以像这样展示:

       A    B
    1  1    张三
    2  2    李四
    

    这里A列代表键(索引),B列代表对应的值。

    map2 实际上看起来更像是一个二维映射,其中每个键对应一对键值对,这可能不是一个标准的Map用法,因为它通常用于一对一的关系。不过,我们可以将其理解为一种特殊的映射结构:

    Map<String, Map<String, String>> map2 = new HashMap<>();
    Map<String, String> innerMap1 = new HashMap<>();
    innerMap1.put("id", "1");
    innerMap1.put("name", "张三");
    Map<String, String> innerMap2 = new HashMap<>();
    innerMap2.put("id", "2");
    innerMap2.put("name", "李四");
    
    map2.put("1", innerMap1);
    map2.put("2", innerMap2);
    

    当我们将 map2 转换为Excel时,会得到类似这样的表格:

       A       B      C
    1  id     name  
    2  1      张三    
    3  2      李四    
    

    这里A列和B列分别代表内嵌Map中的键和值。然而,这种表示方式并不常见,因为通常我们不会在一个Map中存储另一个Map,除非有特殊的需求。

    如果你想要从 map2 中提取出类似于 map1 的结构,你可以这样做:

    Map<Integer, String> simplifiedMap = new HashMap<>();
    for (Map.Entry<String, Map<String, String>> entry : map2.entrySet()) {
        int keyAsInt = Integer.parseInt(entry.getKey());
        simplifiedMap.put(keyAsInt, entry.getValue().get("name"));
    }
    

    这样你就得到了一个与 map1 等效的Map。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月16日
  • 已采纳回答 6月8日
  • 创建了问题 6月8日

悬赏问题

  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题