Ich suche, ob Java einige Kombinatorik-Funktionen hat, die ich nutzen kann. Ich möchte eine dynamische Liste haben und auf eine saubere Art und Weise Java alle Kombinationen generieren lassen.Java Kombination Generation
Gegeben eine Liste von Objekten, wie z. B. Strings. Gibt es einen einfachen/sauberen Weg/vorzugsweise etwas, das bereits in Core Java eingebaut ist, um alle Kombinationen der Items zu generieren? z.B. Wenn ich hatte:
List<String> items = new ArrayList<String>();
items.add("a");
items.add("b");
List<List<String>> result = generateCombinationOf(items);
Ich wünsche, Ergebnisse zu enthalten: {{}, {"a"}, {"b"}, {"a", "b"}}
Randbemerkung: Ich konnte Listen wie dies in Mathematica in der Vergangenheit erzeugen. Ich habe ein Nebenprojekt, wo ich Java verwenden möchte und ich hoffe, zu vermeiden, mit Mathematica zu integrieren, wenn überhaupt möglich, aber wenn ich einige Eigenschaften wie das oben genannte nicht leicht finden kann.
für etwas War auf der Suche eingebaut, wird aber in ein paar Tagen, wenn niemand akzeptieren else bietet ein Beispiel für etwas eingebautes. –
Java hat normalerweise keine eingebauten Funktionen für diese Art von Dingen. Wenn der Grund, dass Sie eine Funktion wie diese haben wollen, ist, weil Sie direkt in der Liste wie 'list.getCombinations(); aufrufen möchten;' Sie könnten Ihre eigene 'MyList' Klasse erstellen, die ArrayList und erweitert implementiert diese Methode. Sie können diese Methode dann nur auf den Code in dieser Lösung anwenden. –
@DanvanderKallen, Ich habe auch nichts dergleichen in Core Java gesehen, aber ich hoffe, dass es ein 3rd Party Glas gibt (am besten von jemandem wie Apache, oder anderen mit einem guten Open Source Ruf). Java hat eine so starke Anhängerschaft, dass ich kaum glauben kann, dass es dafür nichts gibt. –