簡體   English   中英

合並幾個數組列表 <String> 合而為一

[英]Merging several Arraylists <String> into one

好的,所以我想以某種方式合並這些arrayslist,使它們彼此插入並在下面創建句子。 輸出:“這是我要重構的句子”

List<String> list1 = Arrays.asList(This, , , , , , , , reconstruct);
List<String> list2 = Arrays.asList (, is, the, , , , trying, ,);
List<String> list3 = Arrays.asList(, , ,sentence, that, I'm, , to,);

我嘗試使用list.addall(list2),但它只是將每個列表緊挨着另一個放置。 如何整合清單?

你可以像下面這樣

    List<String> list1 = Arrays.asList("This", "", "", "", "", "", "", "", " reconstruct");
    List<String> list2 = Arrays.asList("", " is", " the", "", "", "", " trying", "", "");
    List<String> list3 = Arrays.asList("", "", "", " sentence", " that", " I'm", "", " to", "");

    StringBuilder sentense = new StringBuilder();
    for (int i = 0; i < list1.size(); i++) {
        sentense.append(list1.get(i)).append(list2.get(i)).append(list3.get(i));
    }
    System.out.print(sentense.toString());

假設給定列表的大小相同。 您可以使用與此類似的代碼。

  for(int i =0; i<list1.size();i++){
    if(list1.get(i)==""){

    //replace with sentence from other lists 
        if(list2.get(i)!=""){
           list1.add(i,list2.get(i));
        }
        else if(list3.get(i)!=""){
           list1.add(i,list3.get(i));
        }
    }
  }

以下代碼僅在您確定單詞的每個位置都是唯一的情況下才有效:

List<String> list1 = Arrays.asList(This, , , , , , , , reconstruct);
List<String> list2 = Arrays.asList (, is, the, , , , trying, ,);
List<String> list3 = Arrays.asList(, , ,sentence, that, I'm, , to,);

String txt = "";
for (int i = 0; i < list1.size(); i++) {
    txt = txt + list1.get(i) + list2.get(i) + list3.get(i) + " ";
}
System.out.println(txt.trim());

如果要創建新列表,請執行以下操作:

List<String> myList = new ArrayList<String>();
String txt = "";
for (int i = 0; i < list1.size(); i++) {
    txt = list1.get(i) + list2.get(i) + list3.get(i);
    myList.add(txt);
}

你可以試試看 我希望這可以幫助

List<String> list1 = Arrays.asList("This", "", "", "", "", "", "", "", "reconstruct");
    List<String> list2 = Arrays.asList ("", "is", "the", "", "", "", "trying", "","");
    List<String> list3 = Arrays.asList("", "", "","sentence", "that", "Im", "", "to","");
    List<String> mergedValue = new ArrayList<>();

    for(int i = 0; i<list1.size();i++){
        if(list1.get(i)!=""){
            mergedValue.add(list1.get(i));
        }
        if(list2.get(i)!=""){
            mergedValue.add(list2.get(i));
        }
        if(list3.get(i)!=""){
            mergedValue.add(list3.get(i));
        }
    }

暫無
暫無

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

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