J'ai une ArrayList qui contient une HashMap.HashMap dans ArrayList dosent existe en dehors de la boucle
Example of one of the Arraylist lines:
1 = {[email protected]} size = 10
0 = {[email protected]} "0" -> "false"
1 = {[email protected]} "1" -> "false"
2 = {[email protected]} "2" -> "false"
3 = {[email protected]} "3" -> "false"
4 = {[email protected]} "4" -> "false"
5 = {[email protected]} "5" -> "false"
6 = {[email protected]} "6" -> "false"
7 = {[email protected]} "7" -> "false"
8 = {[email protected]} "8" -> "false"
9 = {[email protected]} "9" -> "false"
Lorsque je quitte la boucle, tous les HashMap est parti et istead, la taille ArrayList reste, mais c'est toute la liste:
iscompleted = {[email protected]} size = 11
0 = {[email protected]} size = 0
1 = {[email protected]} size = 0
2 = {[email protected]} size = 0
3 = {[email protected]} size = 0
4 = {[email protected]} size = 0
5 = {[email protected]} size = 0
6 = {[email protected]} size = 0
7 = {[email protected]} size = 0
8 = {[email protected]} size = 0
9 = {[email protected]} size = 0
10 = {[email protected]} 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();
> }
Ok, résolu le problème. Il suffit de retirer la map.clear –
Non, le simple fait de supprimer map.clear ne suffit pas. Vous auriez toujours la même instance HashMap dans toutes les positions de votre liste. – Eran