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更容易。

更新於:2023年8月1日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.