Ich habe einen Algorithmus, der alle möglichen Kombinationen zurückgibt, indem Sie ein Element aus jeder Spalte (Hier eine Auswahl von Suppe, Nudeln und Belag).Java Finden Sie alle möglichen Kombinationen aus Spalten
Gibt es einen effizienteren und dynamischeren Weg dies zu tun? Damit die findAllCombinations-Methode funktioniert, muss ich wissen, wie viele Spalten vorhanden sind, und sie fest codieren.
Gültige Kombinationen: [Kressesuppe, Udon, Fisch Cube], [würzige Suppe, Ramen, Schinken], ...
ArrayList<ArrayList<String>> listOfLists = Lists.newArrayList();
listOfLists.add(Lists.newArrayList("Original Soup", "Spicy Soup", "Watercress Soup", "Thai Spicy Soup", "Malaysia Spicy Soup"));
listOfLists.add(Lists.newArrayList("Udon", "Ramen", "Egg Noodle", "Flat Rice Noodle", "Vermicelli", "Instant Noodle"));
listOfLists.add(Lists.newArrayList("Fish Cube", "Fish Ball", "Ham", "Squid", "Seaweed"));
ArrayList<ArrayList<String>> combo = findAllCombinations(listOfLists);
private ArrayList<ArrayList<String>> findAllCombinations(ArrayList<ArrayList<String>> arrays){
ArrayList<ArrayList<String>> combinations = new ArrayList<>();
for(String item1: arrays.get(0)){
for(String item2: arrays.get(1)){
for(String item3: arrays.get(2)){
ArrayList<String> temp = new ArrayList<String>() {
{
add(item1);
add(item2);
add(item3);
}
};
combinations.add(temp);
}
}
}
return combinations;
}
Warum überspringen Sie das erste Mitglied des zweiten Arrays und die ersten beiden Mitglieder des dritten Arrays? – LostAndConfused
@LostAndConfused Sie scheinen ein wenig verloren und verwirrt. – shmosel
@LostAndConfused er ist nicht, er wählt das erste, zweite und dritte Array – TheBakker