【发布时间】:2017-05-31 02:33:44
【问题描述】:
假设我有 3 个列表:['q','w'], ['a','s'], ['z','x']。如何从这些列表中获取可能组合的列表?所以我得到一个列表 [['q','a','z'],['q','s','z']] 等等。我为两个列表做了一个方法,但无法为 N 个列表计算一个:
static <E> ArrayList combine(ArrayList<E> one,ArrayList<E> two)
{
ArrayList<ArrayList<E>> combs=new ArrayList<ArrayList<E>>();
for(E e:one)
{
for(E e2:two)
{
ArrayList ps=new ArrayList();
ps.add(e);
ps.add(e2);
combs.add(ps);
}
}
return combs;
}
我发现这是由 Guava 的 Sets.cartesianProduct 完成的。
【问题讨论】:
标签: java combinatorics