Как поместить всю ценность в arraylist в hashmap в android?

У меня есть ArrayList, и я хочу поместить все данные массива в свою хэш-карту, но проблема в том, что все, что я получаю, это последнее значение индекса в списке массивов. Вот мой код

ArrayList<String> imagesFileName = new ArrayList<String>(); public String[] filename; public static final String FILE_NAME = "filename"; public static final String DESCRIPTION = "filename1"; public static final String UPLOADEDBY = "filename2"; public static final String DATE_UPLOAD = "filename3"; public static final String ACTION = "filename4"; public static final String ID = "1"; ArrayList<HashMap<String, String>> mylist; filename = new String[imagesFileName.size()]; for (int i = 0; i < imagesFileName.size(); i++) { filename[i] = imagesFileName.get(i); } mylist = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map = new HashMap<String, String>(); for (int i = 0; i < imagesFileName.size(); i++) { map.put(FILE_NAME, filename[i]); map.put(DESCRIPTION, "desc"); map.put(UPLOADEDBY, "uploadby"); map.put(DATE_UPLOAD, "date_upload"); map.put(ACTION, "delete"); map.put(ID, "1"); mylist.add(map); } adapter = new CustomArrayAdapter(getApplicationContext(), mylist, R.layout.attribute_ireport_list, new String[]{FILE_NAME, DESCRIPTION, UPLOADEDBY, DATE_UPLOAD, ACTION, ID}, new int[]{R.id.tv_File, R.id.txt_Desc, R.id.tv_UploadedBy, R.id.tv_DateUploaded, R.id.tv_Action, R.id.txt_id}, true); lv_iReport.setAdapter(adapter); 

Вы должны положить

  HashMap<String, String> map = new HashMap<String, String>(); 

Внутри блока

У вас есть только один экземпляр «карты», и вы меняете только значение этой карты.

Проблема заключается в том, как вы используете объект карты. Когда вы добавляете карту в список, вы не добавляете ее новую копию. Вместо этого вы копируете ссылку на карту. Так что вы действительно добавляете одну и ту же карту каждый раз. При последнем запуске цикла вы переписываете все значения на карте со значениями последнего объекта в вашем массиве. Вот почему он похож, что добавлен только последний элемент. Когда я пишу это, Луис Завалета просто отправил то, что вам нужно сделать, поэтому послушайте его.

  for (int i = 0; i < imagesFileName.size(); i++) { HashMap<String, String> map = new HashMap<String, String>();//put in it map.put(FILE_NAME, filename[i]); map.put(DESCRIPTION, "desc"); map.put(UPLOADEDBY, "uploadby"); map.put(DATE_UPLOAD, "date_upload"); map.put(ACTION, "delete"); map.put(ID, "1"); mylist.add(map); }