[Java] 리스트 두개 합치기, 3가지 방법
June 03, 2024
Java에서 리스트 2개를 하나의 리스트로 합치는 방법에 대해서 알아보겠습니다.
1. List.addAll()을 이용한 방법
list1.addAll(list2)
는 list1에 list2의 모든 요소를 추가합니다.
- list1에 list2의 요소가 추가되며, list2의 데이터는 변경되지 않음
import java.util.ArrayList;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
list1.addAll(list2);
System.out.println("Merged List: " + list1);
}
}
Output:
Merged List: [A, B, C, D]
원본 리스트는 변경 없이, 새로운 리스트에 병합
원본 리스트 list1과 list2의 데이터는 변경하지 않고, 새로운 리스트에 두개 리스트의 모든 요소를 합칠 수 있습니다.
- 새로운 리스트를 만들고 두개의 리스트에 대해서
addAll()
로 합치기
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
List<String> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
System.out.println("Merged List: " + mergedList);
2. Stream을 이용한 방법
Stream.concat()
을 이용하여 두개 리스트를 하나의 리스트로 합칠 수 있습니다.
Stream.concat(list1.stream(), list2.stream())
: list1과 list2를 Stream으로 만들고 하나로 병합collect(Collectors.toList())
: 합쳐진 내용을 리스트로 리턴- list1과 list2의 데이터는 변하지 않고, 두개 리스트의 요소들이 mergedList에 추가됨
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Example {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
System.out.println("Merged List: " + mergedList);
}
}
Output:
Merged List: [A, B, C, D]
3. Collections.addAll()을 이용한 방법
Collections.addAll()
을 이용하여 두개 리스트를 하나의 리스트로 합칠 수 있습니다.
list1.toArray(new String[1])
: list1을 문자열 배열,String[]
로 변환Collections.addAll(mergedList, list1.toArray(new String[1]))
: mergedList에 배열로 변환된 list1 추가- list1과 list2의 데이터는 변하지 않고, 두개 리스트의 요소들이 mergedList에 추가됨
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
List<String> mergedList = new ArrayList<>();
Collections.addAll(mergedList, list1.toArray(new String[1]));
Collections.addAll(mergedList, list2.toArray(new String[1]));
System.out.println("Merged List: " + mergedList);
}
}
Output:
Merged List: [A, B, C, D]