Java - 将多个地图添加到2D对象数组中

时间:2016-03-16 01:34:56

标签: java arrays object hashmap

我是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 } };

在上面的案例中,地图存储如下:

mapOne中的{p> tabArray[0][0]mapTwo中的tabArray[1][0]

问题:

  1. 如果我有100张地图,我怎样才能在一个声明中添加它们?
  2. 更具体地说,如何将地图对象保存到2D数组的特定索引中?
  3. 我有以下代码在第4行抛出java.lang.ArrayIndexOutOfBoundsException:

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

2 个答案:

答案 0 :(得分:0)

如果readDbConfig方法&#34;生成&#34;你新的地图,你可以使用一个简单的循环

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

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

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

答案 1 :(得分:0)

我找到了以下解决方案:

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