所以我有一个ArrayList<String[]>
列表,其中包含我需要获得的String[]
部分。
因此,如果列表包含A = {a,b,c}
而B = {d,e,f}
我想要打印
ad
,ae
,af
,bd
,be
,bf
,cd
,ce
cf
我很难看到如何拥有一个固定阵列,然后获得另一个,以便我可以迭代它。
编辑:澄清我试图为N String[]
做这个,所以我不能得到第0和第1个元素。
答案 0 :(得分:2)
迭代两个数组,并在每一步上创建新的字符串组合。毕竟只是以某种方式打印组合。
List<String[]> input = ...;
Set<String> allCombinations = new HashSet<>();
for (int i = 0; i < input.size() - 1; i++) {
for (int j = i + 1; j < input.size(); j++) {
allCombinations.addAll(twoArraysCombinations(input.get(i), input.get(j)));
}
}
// print allCombinations
private static Set<String> twoArraysCombinations(String[] first, String[] second) {
Set<String> result = new HashSet<>();
for (String f : first) {
for (String s : second) {
result.add(f + s);
}
}
return result;
}
答案 1 :(得分:0)
编辑:作者更改了他的问题,指定数组中有两个以上的列表。这个答案适用于2,但它可以用来扩展到更多。我们还不清楚我们是否想要所有可能的组合,或仅仅是2的组合
使用嵌套循环迭代两个ArrayList
,然后连接并打印字符串。
如果两个String[]
数组都在ArrayList
中,您应该先使用String[] A = yourArrayList.get(0)
和String[] B = yourArrayList.get(1)
for (String aString : A)
for (String bString : B)
System.out.println(aString + bString);
答案 2 :(得分:0)
您可以使用:
for (String a: list.get(0)) {
for (String b: list.get(1)) {
System.out.println(a + b);
}
}
list
是您的原始List<String[]>
答案 3 :(得分:0)
只需使用2个for-loops
String a [] ={"a","b","c"};
String b [] ={"a","b","c"};
ArrayList<String> d = new ArrayList<>();
for (String a1 : a) {
for (String b1 : b) {
d.add(a1 + b1);
}
}
System.out.println(d.toString());
答案 4 :(得分:-3)
到目前为止对答案印象深刻....阅读问题第一个人
我会给你一个解决方案的大纲(警告拼写错误?)。我将由你决定如何在条目和其他小错综复杂之间加入逗号,这是一个功课问题。另一张海报展示了如何将项目放在列表中而不是打印它们。根据您的具体需求,您可能希望将我的示例与他们合并。
List<String[]> stringLists = ....
for(int firstListIndex = 0; firstListIndex < stringLists.size(); firstListIndex++){
String[] primaryList = stringLists.get(firstListIndex);
for(int secondList = firstListIndex + 1; ....){
String[] secondaryList = ....
for(String first : primaryList){
for(String second : secondaryList){
System.out.println(first + second);
}
}
}
}