【发布时间】:2015-12-24 08:59:56
【问题描述】:
我有一个包含 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();
> }
【问题讨论】:
-
好的,解决了这个问题。只需要删除地图。清除
-
不,仅删除 map.clear 是不够的。您的 List 的所有位置仍然有相同的 HashMap 实例。
标签: java android-studio expandablelistadapter