2016-03-22 31 views
0

hinzufügen Ich versuche, eine Arraylist in einem Arraylist in einem Arraylist hinzufügen, aber nach der ersten Schleife in kontinuierlichen das erste Array hinzuzufügen, die Nächsten insted ..Dynamisch Arraylist in Arraylist in Arraylist

List<ArrayList<List<String>>> tlist= new ArrayList<>(); 
List<List<String>> tslist= new ArrayList<>(); 
List<String> childcat= new ArrayList<>(); 
for (int i = 0; i < response.length(); i++) { 
    JSONObject person = (JSONObject) response.get(i); 
    for (int j = 0; j < sub.length(); j++) { 
     JSONObject subobj = sub.optJSONObject(j); 
     JSONArray suba = subobj.optJSONArray("SubMenus"); 
     childcat = new ArrayList<>(); 
     if(suba!=null) { 
      for (int k = 0; k < suba.length(); k++) { 
       JSONObject subobja = suba.optJSONObject(k); 
       childcat.add(subtitlea); 
      } 
     } 
     tslist.add(new ArrayList<String>(childcat)); 
    } 
    tlist.add((new ArrayList<>(tslist))); 
} 
+0

Wo wird "Untertitel" deklariert? – Eran

+7

Eine Liste oder eine Liste von Listen zu haben ist ein Zeichen für ein schlechtes Design. Versuchen Sie, Ihre Struktur zu kapseln. – Maroun

+0

was willst du wirklich machen? vielleicht könnte es einfacher sein .. – ZaoTaoBao

Antwort

0

Anhören @Maroun Maroun wie zu Frage kommentiert.

Wenn Sie auf diesem Code bestehen;

Erstellen Sie ein neues Objekt (Arraylist), nachdem Sie es zur Liste hinzugefügt haben. Es ist nicht erforderlich, alle Objekte vor der ersten Schleife zu erstellen. Versuchen Sie es wie folgt:

 List<ArrayList<List<String>>> tlist= new ArrayList<>(); 
    for (int i = 0; i < response.length(); i++) { 
     JSONObject person = (JSONObject) response.get(i); 
     List<List<String>> tslist= new ArrayList<>(); 
     for (int j = 0; j < sub.length(); j++) { 
      JSONObject subobj = sub.optJSONObject(j); 
      JSONArray suba = subobj.optJSONArray("SubMenus"); 
      List<String> childcat= new ArrayList<>(); 
      if(suba!=null) { 
       for (int k = 0; k < suba.length(); k++) { 
        JSONObject subobja = suba.optJSONObject(k); 
        childcat.add(subtitlea); 
       } 
      } 
      tslist.add(new ArrayList<String>(childcat)); 
     } 
     tlist.add((new ArrayList<>(tslist))); 
    }