当前位置: 首页 > 知识库问答 >
问题:

如何在java中将二维数组转换为linkedhashmap

夹谷志
2023-03-14

我正在学习Java编程。

我有一个任务,需要将二维数组转换为地图

Object[][] args = new Object[][]{
                {'1', 1},
                {' ', 5},
                {'2', 2},
                {'3', 3},
                {'4', 4},
                {'5', 5},
                {'6', 6}};

Map<Character, Integer> expectedResult = arrayToMap(args);

我写了一个方法:

public Map<Character, Integer> arrayToMap(Object[][] args) {
        Map map = new LinkedHashMap();
        for (Object[] i : args) {
            for (Object j : i) {
                map.put(i, j);
            }
        }
        return map;
    }

但我不明白为什么它不能转换字符。输入:

Expected :{[Ljava.lang.Object;@6b1274d2=1, [Ljava.lang.Object;@7bc1a03d=5, [Ljava.lang.Object;@70b0b186=2, [Ljava.lang.Object;@ba8d91c=3, [Ljava.lang.Object;@7364985f=4, [Ljava.lang.Object;@5d20e46=5, [Ljava.lang.Object;@709ba3fb=6}
Actual   :{1=1,  =5, 2=2, 3=3, 4=4, 5=5, 6=6}

请告诉我,我做错了什么

共有1个答案

楮庆
2023-03-14

i是一个数组,所以当你把它作为映射的键时,你会得到一个映射

您不需要嵌套循环:

public Map<Character, Integer> arrayToMap(Object[][] args) {
    Map<Character, Integer> map = new LinkedHashMap<>();
    for (Object[] i : args) {
        map.put((Character) i[0], (Integer) i[1]);
    }
    return map;
}

2D数组的每个内部数组都应该成为输出映射中的一对键和值。

 类似资料:
  • 问题内容: 我有这种数组 我需要将其转换为一维数组。我怎样才能做到这一点? 例如这样 任何内置函数的php均可用于此数组转换? 问题答案: 对于您有限的用例,可以这样做: 当子数组对此有很多条目时,可以将其更一般化:

  • 问题内容: 我已经有了用于将一维二维转换为一维二维的代码,但是我不知道如何将其转换。这是我的代码: 问题答案: 您正在寻找类似的东西: 与以下内容相同: 但试图帮助进一步解释这个概念。

  • 问题内容: 我想知道如何将2维数组转换为1维数组。我想出了一些代码,但是它似乎并不起作用。有人可以帮帮我吗?谢谢。 [edit]非常感谢。是否可以将String [] []中的每一行转换为String []中的索引,例如,如果我们转换String [] [](以上代码),那么当我打印出array [0]时,它应该打印哑巴,哑巴,哑巴[编辑] 问题答案: 或一次添加整行: 编辑: 从对我的答案的评论

  • 问题内容: 我想通过指定2D数组中的列数将一维数组转换为二维数组。可能会像这样工作: numpy是否具有与我的虚构函数“ vec2matrix”相似的功能?(我知道您可以像2D数组一样索引1D数组,但这不是我拥有的代码中的选项- 我需要进行此转换。) 问题答案: 您要阵列。 其中,根据输入数组的大小推断新维的大小。

  • 问题内容: 我有一个Object的二维数组。所以我有。将其转换为Java 的最佳方法是什么? 问题答案: 对于任何二维数组,这都是一种不错的方法,假设您希望按以下顺序进行操作: [[array [0] -elems],[array [1] elems] …]

  • 问题内容: 如果我在C#中有一个二维数组-如何将其转换为包含二维数组的JSON字符串? 例如。 在JSON对象中给出一个平面的一维数组。Microsoft文档指出: “多维数组被序列化为一维数组,应该将其用作平面数组。” 问题答案: 您可以使用锯齿状数组而不是二维数组,其定义如下: 然后,JavascriptSerializer会将其序列化为[[#,#,#,#],[#,#,#,#]等形式]