andy: Algorithmus zur Kombination von Listenelementen

Beitrag lesen

Hallo,

ich suche einen Algorithmus, um aus einer Liste mit n Elementen alle möglichen Kombinationen der Reihe nach zu erstellen, wobei die Reihenfolge der Elemente nicht wichtig ist.

z.B: es gibt drei ArrayList mit unterschidlich n elementen

// list1 hat 3 elemente (Integer) 1, 2 und 3
 ArrayList<Integer> list1 = new ArrayList<Integer>();
       list1.add( new Integer(1) );
       list1.add( new Integer(2) );
       list1.add( new Integer(3) );

// list2 hat 2 elemente (Integer) 3, 5
ArrayList<Integer> list2 = new ArrayList<Integer>();
       list2.add( new Integer(3) );
       list2.add( new Integer(5) );

// list3 hat 2 elemente (Integer) 7, 8
 ArrayList<Integer> list3 = new ArrayList<Integer>();
       list3.add( new Integer(7) );
       list3.add( new Integer(8) );

Nun möchte ich alle möglichen Kombinationen der Elemente aus diese drei Listen haben.

Ergebniss sollte so aussehen:

1,3,7
2,3,7
3,3,7
1,5,7
2,5,7
3,5,7
1,3,8
2,3,8
3,3,8
1,5,8
2,5,8
3,5,8

also insgasammt 12 mögliche kombinationen.
elemente_der_list1 * elemente_der_list2 * elemente_der_list3 also 3*2*2 = 12 mögliche kombiantionen

Hat jemand eine Idee wie dieser Algorithmus auszuschauen hat, oder vielleicht existiert ein solches java programm schon???

vielen Dank