如何在 Java 中連線兩個列表

Usama Imtiaz 2023年1月30日 2020年9月19日
  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