最近我实现了以下代码 假设我有 2 个数组 -
arr1 = [a,b,c]
arr2 = [d,e]
应该是这样的
output = [ad,ae,bd,be,cd,ce]
现在假设我有多个数组。
例如:
arr1=[a,b,c]
arr2=[d,e]
arr3=[f,g,h,i]
arrN=[x,y,z,h,o]
output = [adf..x,adf..y and so on]
如何在JAVA中实现这个?请帮忙
我的尝试:
for(int i=0;i<arr1.length();i++)
{
for(int j=0;i<arr2.length();j++)
{
System.out.print(arr1[i] + arr2[j] );
}
}
最佳答案
这是我尝试从多个数组(容器)获取组合。
private List<List<T>> getCombination(int currentIndex, List<TempContainer<T>> containers) {
if (currentIndex == containers.size()) {
// Skip the items for the last container
List<List<T>> combinations = new ArrayList<List<T>>();
combinations.add(new ArrayList<T>());
return combinations;
}
List<List<T>> combinations = new ArrayList<List<T>>();
TempContainer<T> container = containers.get(currentIndex);
List<T> containerItemList = container.getItems();
// Get combination from next index
List<List<T>> suffixList = getCombination(currentIndex + 1, containers);
int size = containerItemList.size();
for (int ii = 0; ii < size; ii++) {
T containerItem = containerItemList.get(ii);
if (suffixList != null) {
for (List<T> suffix : suffixList) {
List<T> nextCombination = new ArrayList<T>();
nextCombination.add(containerItem);
nextCombination.addAll(suffix);
combinations.add(nextCombination);
}
}
}
return combinations;
}
该方法获取包含项目的容器列表。例如容器 1 将具有 [a,b],容器 2 将具有 [c,d,e]。该方法可以采用任意数量的容器。 //容器类声明如下:
public class TempContainer<T> {
private List<T> items;
public void setItems(List<T> items) {
this.items = items;
}
public List<T> getItems() {
return items;
}
}
按如下方式调用此方法:
List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
List<String> list2 = new ArrayList<String>();
list2.add("3");
list2.add("4");
list2.add("5");
TempContainer container1 = new TempContainer();
container1.setItems(list1);
TempContainer container2 = new TempContainer();
container2.setItems(list2);
List<TempContainer> containers = new ArrayList<TempContainer>(2);
containers.add(container1);
containers.add(container2);
// Get combinations
List<List<T>> combinations = getCombination(0, containers);
关于java - 多个数组元素的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632826/