我有一個類Product
其中產品具有名稱:獲取所有可能的組合(功率設置)(或設置)元素
package main;
public class Product {
private String name;
public Product(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
和A類Combination
其中組合具有的一個數組列表產品:
package main;
import java.util.ArrayList;
public class Combination {
private ArrayList<Product> products;
public Combination(ArrayList<Product> products) {
super();
this.products = products;
}
public ArrayList<Product> getProducts() {
return products;
}
public void setProducts(ArrayList<Product> products) {
this.products = products;
}
}
在Main
我創造琳琅滿目的商品清單,我想要得到的產品的所有可能的組合。
package main;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Product> products = new ArrayList<Product>();
products.add(new Product("p1"));
products.add(new Product("p2"));
products.add(new Product("p3"));
products.add(new Product("p4"));
ArrayList<Combination> combinations = getCombinations(products);
}
public static ArrayList<Combination> getCombinations(ArrayList<Product> products){
ArrayList<Combination> combinations = new ArrayList<Combination>();
//CODE TO ADD
return combinations;
}
}
什麼是獲得所有組合的最快解決方案? 在所示的示例中,我將獲得以下的組合:
P1
P1,P2,
P1 P2 P3
P1 P2 P3 P4
P1,P2,P4
P1 p3
p1 p3 p4
P1 P4
P2
,P2,P3
P2 P3 P4
P2 P4
P3
P3 P4
p4
我不關心我檢索組合的順序,重要的是要以最快的方式獲取所有組合。
你試過了什麼? – talex
這可能會有幫助[計算給定字符的所有可能組合](https://codereview.stackexchange.com/questions/41510/calculate-all-possible-combinations-of-given-characters) – matoni
請參閱此處的數組排列在SO: https://stackoverflow.com/questions/2920315/permutation-of-array – deHaar