Java で 2つのリストを結合する方法

  1. Java で 2つのリストを結合するには Stream を使う
  2. Java で 2つのリストを結合するには parameterize コンストラクタ を使う
  3. Java で 2つのリストを結合するには 事前宣言された新しい配列 を使う

何らかの手続きを行う前に、いくつかのリストを 1つに結合しなければならないことがよくあります。2つのリストを結合したり、より大きなリストに結合したりする方法は非常に多くあります。この記事では、Java で 2つのリストをマージする 2つの手っ取り早い方法を見ていきます。配列リストまたは Java ベースのリンクトリスト。

多くのコレクションを結合する一つの方法は、java.util collection クラスの addAll() 関数を使うことです。addAll() 関数を使えば、必要なだけ多くのリストに内容を割り当てることができ、多くのリストをマージする最も簡単な方法です。

また、他にもいくつかの方法を説明しているので、より理解が深まるだろう。

  • ストリーム Stream の利用
  • パラメータ化されたコンストラクタ Parameterized Constructor の利用
  • 予め宣言されたリストと addAll() の利用

Java で 2つのリストを結合するには Stream を使う

Java バージョン 8 のストリームは、問題の大部分を 1 行で解決することを可能にし、同時にコードがきれいに見えるようにしてくれます。異なる戦略を支えるアイテムの配置で、理想的な結果を生み出すためにパイプライン化することができます。後述のソリューションでは、lst.stream() はリストを Stream データ型に変換し、Stream.concat(Strem1,Stream2) は 2つの異なる 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 で 2つのリストを結合するには parameterize コンストラクタ を使う

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 で 2つのリストを結合するには 事前宣言された新しい配列 を使う

結果リスト 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

  • Java で整数リストを整数配列に変換する方法
  • comments powered by Disqus