2016-05-11 9 views
1

Ich möchte Permutationen von mehreren Listen unterschiedlicher Typen erstellen. Lassen Sie mich ein Beispiel geben, dass es schwierig wäre, es auf Englisch zu erklären.Generation Permutationen von mehreren Listen unterschiedlicher Typen

Class Rule { 
private List<Long> ids; 
private List<String> names; 
private List<ABCEnum> enums; 
} 

möchte ich Permutationen in Form von Ausgabeobjekte erzeugen, die wie folgt aussieht:

Class Output { 
Long id; 
String name; 
ABCEnum enum 
} 

Test-Beispiel-

Input--

Rule: 
ids -- 1,2 
names -- abc,bcd 
enums -- NEW,OLD 

generiert Ausgangsobjekte: (gesamt - 2 * 2 * 2 = 8 Objekte)

1,abc,NEW 
1,bcd,NEW 
1,abc,OLD 
1,bcd,OLD 
2,abc,NEW 
2,bcd,NEW 
2,abc,OLD 
2,bcd,OLD 

Dinge, die ich versucht habe: versucht, Permutationen einer Zeichenfolge Beispiel zu meinem Problem ohne Glück zuordnen. Ich kann für for-Schleifen gehen, aber das ist keine gute Lösung.

Bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden.

Jede Hilfe bei der Lösung dieses Problems wird sehr geschätzt.

Dank

+0

Wissen Sie, wie viele Einträge die Regel hat oder dass ändert sich? – itdoesntwork

+0

Im Moment habe ich fünf Felder in der Regel (im obigen Beispiel 3), aber das kann in Zukunft noch zunehmen. Soweit die jeweilige Liste reicht, könnte es eine unbegrenzte Anzahl von Einträgen in einer Liste geben. – boxfish

+5

Geben Sie "Kartesisches Produkt" in das Suchfeld ein. Sie erhalten Dutzende von Ergebnissen wie diese: http://stackoverflow.com/questions/1719594/iterative-cartesian-product-in-java – m69

Antwort

1
for (Long id : ids) 
    for (ABCEnum e : enums) 
     for (String name : names) 
      System.out.println(id + "," + name + "," + e); 
Verwandte Themen