我有一个类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