Liste von Liste

guguli

Bekanntes Mitglied
Hallo zusammen,
ich habe folgendes Problem:
ich möchte über ein array iterieren und jedes Element dieses Arrays als eine liste in einer Liste schreiben.
Bsp:
array = [a,s,d,f]
nun möchte ich eine liste von Listen die so aus sieht:
newArray =[[a],,[d],[f]]
Kann mir bitte einen Tipp geben?
Dnake
 
Java:
List<List<Object>> listList = ..;

Java:
List<List<String>> listListString = ..;
 
Java:
List<List<Object>> listList = ..;

Java:
List<List<String>> listListString = ..;


und wie kann ich da was da hinzufürgen.

Ich schreib in groovy und mache wie folgt:
Code:
def test = [[]]
alltickets.each{ticket ->
test.add(ticket.name)
}

da funktioniert aber so nicht.
das ergebnis ist [[],name], es muss aber das sein: [[name]]
 
hört sich nach einer einfachen zwei dimensionalen Liste an.
Java:
String[][] test = new String[10][10];
String[0] = new String[10];
String[0][1] = "a";
// usw.
Wenn du nicht die dynamische Möglichkeit von DerWissende benutzen willst. (welche ich aber empfehlen würde)
 
Also bester Stil ist es jetzt nicht, aber es erfüllt deine Forderungen:
Java:
        Random r = new Random();
        List<List<Object>> llo = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            if (r.nextDouble() < 0.5) {
                llo.add(new ArrayList<>(Arrays.asList(r.nextInt(5))));
            } else {
                llo.add(new ArrayList<>(Arrays.asList((char) ('A' + r.nextInt('Z' - 'A' + 1)))));
            }
        }

        for (List<Object> list : llo) {
            Object o = list.get(0);
            if (o instanceof Integer) {
                Integer i = (Integer) o;
                System.out.println("i = " + i);
            }
            if (o instanceof Character) {
                Character c = (Character) o;
                System.out.println("c = " + c);
            }
        }

Wobei dann für kleinbuchstaben:
Java:
(char) ('a' + r.nextInt('z' - 'a' + 1))

List<List<Object>> garantiert dir nicht, dass
1. "sublist" immer genau 1 lang ist,
2. nicht etwas anderes außer Integer und Character in "sublist" gelegt wird.
 
Probiers mal so:

def test = [[]]
alltickets.each{ticket ->
test[0].add(ticket.name)
}

In deinem Code fügst du der Liste Test, welche bisher nur eine leere Liste als 1. Element beinhaltet ein neues Element Name hinzu. Was du aber anscheinend
möchtest ist dem 1. Element der Liste Test ein neues Element hinzufügen.

P.S.: Es gibt hier einen Bereich Scriptsprachen, in den deine Groovy Frage besser reinpasst, dann bekommst du auch nicht so viele Antworten die an der Frage vorbeigehen …
 
Probiers mal so:

def test = [[]]
alltickets.each{ticket ->
test[0].add(ticket.name)
}

In deinem Code fügst du der Liste Test, welche bisher nur eine leere Liste als 1. Element beinhaltet ein neues Element Name hinzu. Was du aber anscheinend
möchtest ist dem 1. Element der Liste Test ein neues Element hinzufügen.
Hallo,
Die Idee mit test[0] ist schon ma gut. aber was denn wenn ich mehrere Elemente in dem alltickets habe.
ich hab versucht so zu machen:
Code:
def i = 0
def test = [[]]
alltickets.each{ticket ->
test[i].add(ticket.name)
i = i+1
}

da gibt mir aber ein error (nulpointer) zurück:
Cannot invoke method add() on null object.

ich will sowas dann haben :
[[name1] , [name2] , ... ]
 
ich hab das wie folgt gemahct:
Code:
liste=[]
alltickets.each{ticket ->
templist=[]
templist.add(ticket.name)
liste.add(templist)
}
 

Zurück
Oben