如何在ArrayList(Java)中打印字符串数组中的字符串组合

时间:2014-10-25 17:18:44

标签: java arrays arraylist

所以我有一个ArrayList<String[]>列表,其中包含我需要获得的String[]部分。

因此,如果列表包含A = {a,b,c}而B = {d,e,f}我想要打印

adaeafbdbebfcdce cf

我很难看到如何拥有一个固定阵列,然后获得另一个,以便我可以迭代它。

编辑:澄清我试图为N String[]做这个,所以我不能得到第0和第1个元素。

5 个答案:

答案 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);
                 }
             }

    }

}