我有一个包含HashMap的ArrayList。
Example of one of the Arraylist lines:
1 = {HashMap@831906200928} size = 10
0 = {HashMap$HashMapEntry@831906220224} "0" -> "false"
1 = {HashMap$HashMapEntry@831906220256} "1" -> "false"
2 = {HashMap$HashMapEntry@831906220288} "2" -> "false"
3 = {HashMap$HashMapEntry@831906220320} "3" -> "false"
4 = {HashMap$HashMapEntry@831906220352} "4" -> "false"
5 = {HashMap$HashMapEntry@831906220384} "5" -> "false"
6 = {HashMap$HashMapEntry@831906220416} "6" -> "false"
7 = {HashMap$HashMapEntry@831906220448} "7" -> "false"
8 = {HashMap$HashMapEntry@831906220480} "8" -> "false"
9 = {HashMap$HashMapEntry@831906220512} "9" -> "false"
当我退出循环时,所有的HashMap都消失了,而且仍然存在ArrayList大小,但这就是所有列表:
iscompleted = {ArrayList@831906354944} size = 11
0 = {HashMap@831906354968} size = 0
1 = {HashMap@831906354968} size = 0
2 = {HashMap@831906354968} size = 0
3 = {HashMap@831906354968} size = 0
4 = {HashMap@831906354968} size = 0
5 = {HashMap@831906354968} size = 0
6 = {HashMap@831906354968} size = 0
7 = {HashMap@831906354968} size = 0
8 = {HashMap@831906354968} size = 0
9 = {HashMap@831906354968} size = 0
10 = {HashMap@831906354968} size = 0
> ArrayList<HashMap<String, Boolean>> iscompleted = new ArrayList<HashMap<String, Boolean>>();
> HashMap map = new HashMap<String, Object>();
> for (i=0; i<_listDataHeader.size(); i++) {
> for (int j=1; j<_listDataChild.size(); j++){
> map.put(j-1, tasks.get(x).get("isCompleted"));
> x++;
> }
> iscompleted.add(map);
> map.clear();
> }
答案 0 :(得分:1)
您将相同的HashMap实例放在列表中,并在每次迭代后清除它。
您应该为要添加到列表的每个元素创建一个新的HashMap
:
ArrayList<HashMap<String, Boolean>> iscompleted = new ArrayList<HashMap<String, Boolean>>();
for (i=0; i<_listDataHeader.size(); i++) {
HashMap map = new HashMap<String, Object>();
for (int j=1; j<_listDataChild.size(); j++){
map.put(j-1, tasks.get(x).get("isCompleted"));
x++;
}
iscompleted.add(map);
}