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
 
X

Xyz1

Gast
Java:
List<List<Object>> listList = ..;

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

guguli

Bekanntes Mitglied
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]]
 

Jardcore

Top Contributor
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)
 
X

Xyz1

Gast
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.
 

tommysenf

Top Contributor
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 …
 

guguli

Bekanntes Mitglied
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] , ... ]
 

guguli

Bekanntes Mitglied
ich hab das wie folgt gemahct:
Code:
liste=[]
alltickets.each{ticket ->
templist=[]
templist.add(ticket.name)
liste.add(templist)
}
 

Neue Themen


Oben