How to join two Lists in Java
In this article, we show you 2 examples to join two lists in Java.
- JDK – List.addAll()
- Apache Common – ListUtils.union()
1. List.addAll() example
Just combine two lists with List.addAll()
.
JoinListsExample.java
package com.mkyong.example;
import java.util.ArrayList;
import java.util.List;
public class JoinListsExample {
public static void main(String[] args) {
List<String> listA = new ArrayList<String>();
listA.add("A");
List<String> listB = new ArrayList<String>();
listB.add("B");
List<String> listFinal = new ArrayList<String>();
listFinal.addAll(listA);
listFinal.addAll(listB);
//same result
//List<String> listFinal = new ArrayList<String>(listA);
//listFinal.addAll(listB);
System.out.println("listA : " + listA);
System.out.println("listB : " + listB);
System.out.println("listFinal : " + listFinal);
}
}
Output
listA : [A]
listB : [B]
listFinal : [A, B]
Append Lists
To append ListB to the end of ListA, uses
To append ListB to the end of ListA, uses
listA.addAll(listB);
2. ListUtils.union example
Apache common library – ListUtils.union()
.
JoinListsExample2.java
package com.mkyong.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<String> listA = new ArrayList<String>();
listA.add("A");
List<String> listB = new ArrayList<String>();
listB.add("B");
List<String> listFinal = ListUtils.union(listA, listB);
System.out.println("listA : " + listA);
System.out.println("listB : " + listB);
System.out.println("listFinal : " + listFinal);
}
}
Output
listA : [A]
listB : [B]
listFinal : [A, B]
Dig into the source code, the ListUtils.union
is using the same List.addAll()
to combine lists.
ListUtils.java
public static List union(final List list1, final List list2) {
final ArrayList result = new ArrayList(list1);
result.addAll(list2);
return result;
}
Very clear explanation of appending one list to another. This is a great Java resource.
What if i need to join to personel lists in a situation like below?
-List A has personels address information (Same Personel class, other information are null except id)
-List B has personels work information (Same Personel class, other information are null except id)
-Both came from different tables, no option to use sql to fetch both to one list at initialization.
-Both has the same personels; e.g. john, jack, rose and julie.
Goal: Fill “List A”‘s lacking information from “List B”.
Nice Blog
What about joining 3 lists or more?
I think the Union here is misleading because if we add a new item for example “D” to both list, the result should be listFinal[A,D,B] but the result will show two “D” ‘s listFinal[A,D,B,D] which contradict the union principal in math
plz upload the EJB3.0 Tutorials
nice i sucess for combine list with this method.
nice
sper one..