如何在 Java 中連線兩個列表
-
在 Java 中使用流
Stream
來連線兩個列表 - 在 Java 中使用引數化建構函式 (parameterize constructor) 來連線兩個列表
-
在 Java 中使用
predeclared new array
來連線兩個列表
通常,在執行任何程式之前,我們必須將幾個列表合併成一個。有不少不同的方法來合併兩個列表或將它們合併成更大的列表。我們將在本文中檢視兩種在 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();
}
}