В приведенном ниже коде я создаю временную хеш-карту и добавляю ее в качестве значения в другую хеш-карту, в конце цикла while у хеш-карты csvList есть только последнее значение временной карты, добавленной в качестве значения, вседругие значения являются нулевыми
Ключ сохраняется, и все значения заменяются нулевыми.Что я делаю здесь неправильно, это temp.clear или где объявлено временное хеш-изображение.
HashMap<String, HashMap<String, String>> csvList = new HashMap<String, HashMap<String, String>>();
HashMap<String, String> tempMap = new HashMap<String, String>();
List<String> line = null;
try {
inputStream = new FileInputStream(csvFile);
//scanner = new Scanner(inputStream);
scanner = new Scanner(inputStream, "UTF-8");
//scanner.useDelimiter("\r\n");
int i = 0;
while (scanner.hasNext()) {
//tempMap.clear();
if (i == 0) {
headList = parseLine(scanner.nextLine());
i++;
} else {
line = parseLine(scanner.nextLine());
pKey = "";
for (int j = 0; j < line.size(); j++) {
if (!selectClause.toLowerCase().contains(headList.get(j).toLowerCase()))
continue;
else {
// Change for multiple PKeys
if (primaryKey.toLowerCase().contains(headList.get(j).toLowerCase())) {
pKey = pKey + line.get(j);
}
if (headList.get(j).equalsIgnoreCase(primaryKey))
pKey = line.get(j);
tempMap.put(headList.get(j).toLowerCase(), line.get(j));
}
}
//System.out.println(i++);
line.clear();
csvList.put(pKey, tempMap);
}
//tempMap.clear();
}
headList.clear();
//tempMap.clear();
scanner.close();
}
return csvList;
}