Hallo,
habe hier eine Liste mit 6 Elementen (zur vereinfachung 1..6 genannt)
1,2,3,4,5,6
was ich bauen möchte sind 6 neue Listen in folgender Reihenfolge:
1,2,3,4,5,6
2,1,3,4,5,6
3,1,2,4,5,6
4
5
6
also das erste Element jeder Liste erhöt sich jeweils um eins, die anderen werden angehängt
Dieser Code bricht ab mit:
IndexOutOfBoundsException: Index 2, size 1 in der Zeile //XXXXX
Warum?
habe hier eine Liste mit 6 Elementen (zur vereinfachung 1..6 genannt)
1,2,3,4,5,6
was ich bauen möchte sind 6 neue Listen in folgender Reihenfolge:
1,2,3,4,5,6
2,1,3,4,5,6
3,1,2,4,5,6
4
5
6
also das erste Element jeder Liste erhöt sich jeweils um eins, die anderen werden angehängt
Code:
List<List<SbuEntity>> allLists = new ArrayList<List<SbuEntity>>();
for (int n=0; n<myList.size(); n++) {
List<SbuEntity> tmp = new ArrayList<SbuEntity>();
System.out.println("element: " + n + " is first in this list");
//das erste Element der Liste fest setzen
tmp.add(myList.get(n));
//Die Listen befüllen
for (int h=1; h<myList.size(); h++) {
if (h==n) {
System.out.println(h);
//Dieses Element überspringen, da es oben bereits gesetzt wurde
}
else {
System.out.println("h: " + h);
//System.out.println(myList.get(h).getName());
tmp.add(h, myList.get(h)); //XXXXX
}
}
System.out.println(tmp);
}
Dieser Code bricht ab mit:
Code:
element: 0 is first in this list
h: 1
h: 2
h: 3
h: 4
h: 5
[Bathroom [name=Kathrin, standupTime=08:00 lazyTime=00:00, duration=10, bathEntry=08:00], Bathroom [name=Laura, standupTime=08:00 lazyTime=00:00, duration=20, bathEntry=08:00], Bathroom [name=Sara, standupTime=08:00 lazyTime=00:00, duration=5, bathEntry=08:00], Bathroom [name=Susi, standupTime=08:00 lazyTime=00:00, duration=30, bathEntry=08:00], Bathroom [name=Sandra, standupTime=08:00 lazyTime=00:00, duration=5, bathEntry=08:00], Bathroom [name=Elena, standupTime=08:00 lazyTime=00:00, duration=40, bathEntry=08:00]]
element: 1 is first in this list
1
h: 2
IndexOutOfBoundsException: Index 2, size 1 in der Zeile //XXXXX
Warum?