У меня есть лист Excel, из которого я должен прочитать все ячейки и сохранить их в 2D-массиве, что я уже сделал. Теперь я хочу сохранить эти элементы 2D-массива в хэш-карте. Я попытался использовать следующий код, но когда я печатаю карту, он печатает только последние прочитанные элементы с соответствующими ключами. Это можно понять из следующего примера: -
1> Мой лист Excel:
2> Код для заполнения 2D-массива из таблицы Excel:
String[][] excelData = new String[numRows][numCols];
System.out.println("Populating Array....");
for (int i=0; i<numRows; i++)
{
HSSFRow row = sheet.getRow(i);
for (int j=0; j<numCols; j++)
{
HSSFCell cell = row.getCell(j);
String cellValue = cellToString(cell); //cellToString is a function in class
excelData[i][j] = cellValue; //data stored in excelData[][] array
}
}
System.out.println("Array population complete");
3> Мой код для преобразования 2D-массива в Hashmap
System.out.println("putting in map");
HashMap map = new HashMap();
for (int j = 0; j < numCols;j++) //Columns
{
for (int i = 1; i < numRows;i++ ) //Rows
{
map.put(excelData[0][j], excelData[i][j]);
}
}
System.out.println("Map values key :" +map);
4> Фактический вывод: -
Ключ значений карты: {Заголовок 1 = значениеH1_3, Заголовок 2 = значениеH2_3, Заголовок 3 = значениеH3_3, Заголовок 4 = значениеH4_3, Заголовок 5 = значениеH5_3}
Указанный выше вывод неверен.
Ожидаемый вывод: -
Ключ значений карты: {Заголовок 1 = значениеH1_1, значениеH1_2, значениеH1_3, Заголовок 2 = значениеH2_1, значениеH2_2, значениеH2_3 Заголовок 3 = значениеH3_1, значениеH3_2, значениеH3_3, Заголовок 4 = значениеH4_1, значениеH4_2, значениеH4_3, Заголовок 5 = значениеH5_1, значениеH5_2, значениеH5_3}
Карта не может сохранить предыдущие итерированные значения ключей. Может кто-нибудь помочь, пожалуйста