Java中合併兩個ArrayList
陣列是由某些元素組成的集合,這些元素可以是任何佔用相鄰記憶體位置的內容。我們在這裡將多個相同型別的元素儲存在一起。ArrayList是一個類,與內建陣列不同,它是可調整大小的。一個重要的概念是理解ArrayList與普通陣列的區別,因為只有前者允許透過新增或刪除元素來修改元素。重要的是,可以透過java.util包輕鬆訪問許多功能強大的ArrayList變體,這些變體能夠執行各種操作。在這篇文章中,我們將演示使用Java語言連線兩個ArrayList的不同方法。
語法
import java.util.ArrayList; ArrayList<String>(object name) = new ArrayList<String>();
addAll()方法的演算法
步驟 1 − 建立一個ArrayList join1。
步驟 2 − 向列表中新增元素。
步驟 3 − 列印ArrayList的元素。
步驟 4 − 建立另一個ArrayList join2。
步驟 5 − 向列表中新增元素。
步驟 6 − 列印ArrayList的元素。
步驟 7 − 使用addAll將join2的元素附加到join1。
步驟 8 − 打印合並後的ArrayList。
removeAll()/addAll方法的演算法
步驟 1 − 建立一個ArrayList join1。
步驟 2 − 向列表中新增元素。
步驟 3 − 列印ArrayList的元素。
步驟 4 − 建立另一個ArrayList join2。
步驟 5 − 向列表中新增元素。
步驟 6 − 列印ArrayList的元素。
步驟 7 − 建立另一個ArrayList join3。
步驟 8 − 將join2的元素新增到join3。
步驟 9 − 刪除join1的元素。
步驟 10 − 使用addAll將join1的元素附加到join3。
步驟 11 − 打印合並後的ArrayList。
Stream flatMap()方法的演算法
步驟 1 − 建立一個ArrayList join1。
步驟 2 − 向列表中新增元素。
步驟 3 − 列印ArrayList的元素。
步驟 4 − 建立另一個ArrayList join2。
步驟 5 − 向列表中新增元素。
步驟 6 − 列印ArrayList的元素。
步驟 7 − 獲取join1和join2的元素到單個流中。
步驟 8 − 將流元素收集到ArrayList中。
步驟 9 − 打印合並後的ArrayList。
LinkedHashSet()方法的演算法
步驟 1 − 建立一個ArrayList join1。
步驟 2 − 向列表中新增元素。
步驟 3 − 列印ArrayList的元素。
步驟 4 − 建立另一個ArrayList join2。
步驟 5 − 向列表中新增元素。
步驟 6 − 列印ArrayList的元素。
步驟 7 − 將列表中的項新增到集合中。
步驟 8 − 將集合轉換為ArrayList。
步驟 9 − 打印合並後的陣列。
方法
方法 1 − 使用addAll()方法。
方法 2 − 使用removeAll() / addAll()方法。
方法 3 − 使用flatMap()方法。
方法 4 − 使用LinkedHashSet()方法。
方法 1:addAll() 方法
在這種方法中,我們建立兩個包含不同專案的列表,並將一個列表的元素附加到另一個列表。這裡我們使用addAll()方法。
語法
List1.addAll(List2);
示例
import java.util.ArrayList;
public class ArrayJoinAdd {
public static void main(String[] args) {
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1: " + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2: " + join2);
join1.addAll(join2);
System.out.println("Joined ArrayList: " + join1);
}
}
輸出
ArrayList 1: [Way, Two, Class] ArrayList 2: [Education , comes, first] Joined ArrayList: [Way, Two, Class, Education , comes, first]
方法 2:RemoveAll()/AddAll() 方法
在這種方法中,我們使用兩個函式RemoveAll()和AddAll(),我們刪除第一個列表中存在於第二個列表中的專案,然後將第一個列表新增到第二個列表。
語法
List3.removeAll(List1); List1.addAll(List3);
示例
import java.util.*;
public class ArrayjoinRemove {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
ArrayList<String> join3 = new ArrayList<>(join2);
join3.removeAll(join1);
join1.addAll(join3);
System.out.println("Joined ArrayList" + join1);
}
}
輸出
ArrayList 1:[Way, Two, Class] ArrayList 2:[Education , comes, first] [Way, Two, Class, Education , comes, first]
方法 3:Stream flatMap() 方法
Stream flatMap()方法獲取不同列表中的專案到單個流中,然後將流元素收集到ArrayList中。
語法
List<String> (combined array)= Stream.of(List1,List2) .flatMap(x -> x.stream()) .collect(Collectors.toList());
示例
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
public class ArrayjoinflatMap {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
List<String> finalJoin = Stream.of(join1,join2)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
System.out.println(finalJoin);
}
}
輸出
ArrayList 1:[Way, Two, Class] ArrayList 2:[Education , comes, first] [Way, Two, Class, Education , comes, first]
方法 4:LinkedHashSet() 方法
在這種方法中,我們使用LinkedHashSet()建立一個集合並將元素推入集合中。這個集合表示合併後的ArrayList,它由所有唯一元素組成。
語法
Set <String> set = new LinkedHashSet<>(List1); set.addAll(List2); ArrayList<String> combinedList = new ArrayList<> (set);
示例
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
public class ArrayjoinLinkedHashSet {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
Set <String> set = new LinkedHashSet<>(join1);
set.addAll(join2);
ArrayList<String> finalJoin = new ArrayList<> (set);
System.out.println(finalJoin);
}
}
輸出
ArrayList 1:[Way, Two, Class] ArrayList 2:[Education , comes, first] [Way, Two, Class, Education , comes, first]
結論
在上面的文章中,我們討論了一些簡單的方法來新增兩個或多個ArrayList並列印它們。這些ArrayList可以使用上述方法根據使用者的需求進行組合,這意味著如果我們不希望重複項成為組合列表的一部分,我們可以透過removeAll()和addAll()等方法將其刪除。這些簡單的方法使理解如何連線或合併這些ArrayList更容易。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP