簡體   English   中英

如何從ArrayList(Java)中的字符串數組中打印字符串的組合

[英]How to print combinations of Strings from String arrays in an ArrayList (Java)

所以我有一個ArrayList<String[]>列表,其中包含一些String[] ,我需要獲取它們的組合。

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

adaeafbdbebfcdcecf

我只是很難看到我將如何擁有一個固定的陣列然后得到另一個固定的陣列,因此我可以遍歷該陣列。

編輯:澄清一下,我正在嘗試為N String[]做這個,所以我不能只得到第0個和第1個元素。

遍歷兩個數組,並在每個步驟上進行新的字符串組合。 畢竟只是以某種方式打印組合。

    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;
}

編輯:作者更改了他的問題,以指定一個數組中有兩個以上的列表。 該答案適用於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);

您可以使用:

for (String a: list.get(0)) {
   for (String b: list.get(1)) {
      System.out.println(a + b);
   }
}

list是您的原始List<String[]>

只需使用2個for循環

  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());

迄今為止的答案給人留下了深刻的印象。...首先閱讀問題

我將為您提供解決方案的概述(警告錯別字?)。 如果這是一個家庭作業問題,我將由您決定如何在條目和其他小巧的地方加上逗號。 另一位海報展示了如何將這些物品放入列表而不是打印它們。 根據您的確切需求,您可能希望將我的示例與他們的示例合並。

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

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM