#java #arraylist #hashmap #apache-poi
Вопрос:
Я пытаюсь сохранить карту в ArrayList. Проблема в том, что вторая карта перезаписывает первую карту. Поэтому я дважды вижу вторую карту при печати списка массивов
Я написал код
public static ArrayList<HashMap<String, String>> getAllData(){
loadExcelFile();
XSSFRow rowHeader=sheet.getRow(0);
al=new ArrayList<Movie>();
ArrayList<HashMap<String, String>> al2=new ArrayList<HashMap<String, String>>();
HashMap<String, String> map=new HashMap<String, String>();
int rowCount=sheet.getPhysicalNumberOfRows();
for (int x=1; x<rowCount; x ) {
XSSFRow row=sheet.getRow(x);
for (int y=0; y<row.getLastCellNum(); y ) {
String key=rowHeader.getCell(y).getStringCellValue();
String value=row.getCell(y).getStringCellValue();
map.put(key, value);
}
al2.add(map);
}
System.out.println(al2);
return al2;
}
В списке ArrayList должны храниться две карты, но я вижу, что вторая карта повторяется дважды.
Пожалуйста, помогите
Комментарии:
1. Поэтому используйте другую карту вместо многократного использования одной и той же карты.
2. Перемещайтесь
HashMap<String, String> map = ...
внутриfor
цикла, таким образом, каждый цикл цикла будет генерироваться новый/уникальный.3. @sorifiend Спасибо, что это сработало. Я поместил код за пределы внутреннего цикла for, он работал