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

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

この記事では、Javaの2つのリストを結合する2つの例を示します。

  1. JDK – List.addAll()

  2. Apache Common – ListUtils.union()

1. List.addAll() example

2つのリストをList.addAll()と組み合わせるだけです。

JoinListsExample.java

package com.example.example;

import java.util.ArrayList;
import java.util.List;

public class JoinListsExample {

    public static void main(String[] args) {

        List listA = new ArrayList();
        listA.add("A");

        List listB = new ArrayList();
        listB.add("B");

        List listFinal = new ArrayList();
        listFinal.addAll(listA);
        listFinal.addAll(listB);

        //same result
        //List listFinal = new ArrayList(listA);
        //listFinal.addAll(listB);

        System.out.println("listA : " + listA);
        System.out.println("listB : " + listB);
        System.out.println("listFinal : " + listFinal);

    }

}

出力

listA : [A]
listB : [B]
listFinal : [A, B]

Append Lists
ListBをListAの末尾に追加するには、次を使用します。

listA.addAll(listB);

2. ListUtils.union example

Apache共通ライブラリ–ListUtils.union()

JoinListsExample2.java

package com.example.example;

import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.ListUtils;

public class JoinListsExample2 {

    public static void main(String[] args) {

        List listA = new ArrayList();
        listA.add("A");

        List listB = new ArrayList();
        listB.add("B");

        List listFinal = ListUtils.union(listA, listB);

        System.out.println("listA : " + listA);
        System.out.println("listB : " + listB);
        System.out.println("listFinal : " + listFinal);

    }

}

出力

listA : [A]
listB : [B]
listFinal : [A, B]

ソースコードを掘り下げてみると、ListUtils.unionは同じList.addAll()を使用してリストを結合しています。

ListUtils.java

    public static List union(final List list1, final List list2) {
        final ArrayList result = new ArrayList(list1);
        result.addAll(list2);
        return result;
    }