gpt4 book ai didi

java - 获取列表元素的组合列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:41 27 4
gpt4 key购买 nike

假设我有 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 完成的。

最佳答案

对于懒惰的人(使用 Guava):

Set<List<String>> result = Sets.cartesianProduct(
ImmutableSet.of("q", "w"),
ImmutableSet.of("a", "s"),
ImmutableSet.of("z", "x")
);

System.out.println(result);

输出:

[
[q, a, z],
[q, a, x],
[q, s, z],
[q, s, x],
[w, a, z],
[w, a, x],
[w, s, z],
[w, s, x]
]

关于java - 获取列表元素的组合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com