【问题标题】:Java - Adding multiple maps into 2D object arrayJava - 将多个地图添加到二维对象数组中
【发布时间】:2016-07-01 17:18:34
【问题描述】:

我对 Java 很陌生,请耐心等待我的技能。 以下java语句有助于将mapOne对象保存在tabArray[0][0]中:

Object[][] tabArray = null;
Map<String, String> mapOne = readDbConfig();
tabArray = new Object[][] { { mapOne } };

我有另一个地图对象 (mapTwo),我可以使用以下代码同时保存两者:

    Object[][] tabArray = null;
    Map<String, String> mapOne = readDbConfig();
    Map<String, String> mapTwo = readDbConfig();
    tabArray = new Object[][] { { mapOne }, { mapTwo } };

在上述情况下,地图存储如下:

tabArray[0][0] 中的mapOnetabArray[1][0] 中的mapTwo

问题:

  1. 如果我有 100 张地图,如何将它们添加到单个语句中?
  2. 更具体地说,如何将地图对象保存到二维数组的特定索引中?

我有以下代码在第 4 行抛出 java.lang.ArrayIndexOutOfBoundsException:

Map<String, String> dataMap = null;
dataMap = new HashMap<String, String>();
dataMap = readDbConfig();
tabArray[cj][0] = dataMap;

【问题讨论】:

    标签: java arrays object hashmap


    【解决方案1】:

    如果 readDbConfig 方法“生成”你的新地图,你可以只使用一个简单的循环

    for (int i = 0; i < 100; i++)
     tabArray[i][0] = readDbConfig();
    

    或者如果你有一些里面有地图的可迭代容器,你可以遍历这个容器

    for (Map<String, String> el : container) {
     tabArray[i][0] = el;
     i++;
    }
    

    【讨论】:

    • 我有以下代码在第 4 行抛出 java.lang.ArrayIndexOutOfBoundsException:'Map dataMap = null; dataMap = new HashMap(); dataMap = readDbConfig(); tabArray[cj][0] = dataMap;'
    • 这意味着您正在尝试到达数组边界之外,即: int[] tabArray = new int[10];标签数组[42] = 5;数组的大小为 10,因此您无法访问单元格 42。
    【解决方案2】:

    我找到了以下解决方案:

    Object[][] tabArray = null;
    int numberOfMaps = 2;
    tabArray = new Object[numberOfMaps][1];//<<< This did the trick
    tabArray[0][0] = dataMapOne;
    tabArray[1][0] = dataMapTwo;
    

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多