如何在 Java 中連線兩個列表

Usama Imtiaz 2023年10月12日
  1. 在 Java 中使用流 Stream 來連線兩個列表
  2. 在 Java 中使用引數化建構函式 (parameterize constructor) 來連線兩個列表
  3. 在 Java 中使用 predeclared new array 來連線兩個列表
如何在 Java 中連線兩個列表

通常,在執行任何程式之前,我們必須將幾個列表合併成一個。有不少不同的方法來合併兩個列表或將它們合併成更大的列表。我們將在本文中檢視兩種在 Java 中合併兩個列表的快速方法,你可以進一步擴充套件這兩種方法來合併或執行任何數量的列表。Array-List 或基於 Java 的連結列表。

合併許多集合的一種方法是使用 java.util collection 類的 addAll() 函式,它可以幫助你將一個列表的內容新增到另一個列表。通過使用 addAll() 函式,你可以將內容分配給任意多的列表,這也是合併許多列表的最簡單方法。

另外,為了更好的理解,還解釋了一些其他方法。

  • 使用 Stream
  • 使用引數化建構函式
  • 使用預定列表和 addAll()

在 Java 中使用流 Stream 來連線兩個列表

Java 8 版中的流讓我們可以只用一句話解決大部分的問題,同時,程式碼看起來也很乾淨。一個專案的排列,支撐著不同的策略,而這些策略可以通過管道來建立理想的結果。在下面提到的解決方案中,lst.stream() 將列表轉換為 Stream 資料型別,然後 Stream.concat(Strem1,Stream2) 將兩個不同的 Stream 物件連線起來,然後 Stream.collect(collectors.toList)Stream 物件轉換為列表物件。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }

    System.out.println();
    // first Solution
    List<String> resultList1 =
        Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
    // first Solution Prints
    System.out.println("first Solution Prints");
    for (int i = 0; i < resultList1.size(); i++) {
      System.out.print(resultList1.get(i) + " ");
    }

    System.out.println();
  }
}

在 Java 中使用引數化建構函式 (parameterize constructor) 來連線兩個列表

List<String> newList = new ArrayList<String>(listOne); 將通過呼叫引數化建構函式建立一個列表,該建構函式將給定的列表複製到新的列表物件中,然後 newList.addAll(listTwo); 將一個列表(list2)追加到新宣告的列表中。

import java.util.ArrayList;
import java.util.List;

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }
    System.out.println();
    // Second Solution
    List<String> resultList2 = new ArrayList<String>(list1);
    resultList2.addAll(list2);
    // Second Solution Prints
    System.out.println("Second Solution Prints");
    for (int i = 0; i < resultList2.size(); i++) {
      System.out.print(resultList2.get(i) + " ");
    }
    System.out.println();
  }
}

在 Java 中使用 predeclared new array 來連線兩個列表

resultList3 是預定義的,或者可以這樣做 List<String> resultList3; 在宣告瞭 n 個結果列表後,那麼 newList = new ArrayList<String>(list1) 將通過將 list1 的元素複製到新陣列中來初始化新陣列。(list).addAll(list2);list2 的元素追加到 list1 中。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }
    System.out.println();
    // third Solution
    List<String> resultList3;
    (resultList3 = new ArrayList<String>(list1)).addAll(list2);
    // Third Solution Prints
    System.out.println("Third Solution Prints");
    for (int i = 0; i < resultList3.size(); i++) {
      System.out.print(resultList3.get(i) + " ");
    }
    System.out.println();
  }
}

相關文章 - Java List