소개
Java 에서 ArrayList 는 컬렉션 프레임워크 (collection framework) 의 List 인터페이스를 구현한 클래스로, 데이터를 저장하는 데 사용됩니다. 두 ArrayList 를 결합하는 것은 실제로 두 ArrayList 의 요소를 하나의 ArrayList 로 결합하는 과정입니다. 여러 데이터 스트림이 있고 이를 단일 스트림으로 수집하려는 경우 유용합니다.
Java 에서 ArrayList 는 컬렉션 프레임워크 (collection framework) 의 List 인터페이스를 구현한 클래스로, 데이터를 저장하는 데 사용됩니다. 두 ArrayList 를 결합하는 것은 실제로 두 ArrayList 의 요소를 하나의 ArrayList 로 결합하는 과정입니다. 여러 데이터 스트림이 있고 이를 단일 스트림으로 수집하려는 경우 유용합니다.
먼저, 결합하려는 두 개의 ArrayList 를 생성해 보겠습니다. 다음은 정수 (integer) 의 두 ArrayList 를 생성하는 예시입니다.
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
}
}
이 코드를 실행하려면 터미널에 다음 명령을 입력하십시오.
javac Main.java && java Main
그러면 다음과 같은 출력이 나타납니다.
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
addAll() 메서드를 사용하여 두 ArrayList 를 결합하려면 다음 코드를 따르십시오.
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
// Joining two ArrayList
arrList1.addAll(arrList2);
System.out.println("After Joining:");
System.out.println(arrList1);
}
}
이 코드를 실행하려면 터미널에 다음 명령을 입력하십시오.
javac Main.java && java Main
그러면 다음과 같은 출력이 나타납니다.
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
After Joining:
[1030, 1020, 1010, 1040, 1050, 1060, 1070]
flatMap() 메서드와 distinct() 메서드를 사용하여 두 ArrayList 를 결합할 수도 있습니다. 다음 코드를 따르십시오.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// Joining two ArrayList
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("After Joining:");
System.out.println(arrList3);
}
}
이 코드를 실행하려면 터미널에 다음 명령을 입력하십시오.
javac Main.java && java Main
그러면 다음과 같은 출력이 나타납니다.
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
After Joining:
[1030, 1020, 1010, 1040, 1050, 1070]
다음은 Java 에서 두 ArrayList 를 결합하는 전체 코드입니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// Joining two ArrayList
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("After Joining:");
System.out.println(arrList3);
}
}
코드를 실행하려면 터미널에 다음 명령을 입력하십시오.
javac Main.java && java Main
그러면 다음과 같은 출력이 나타납니다.
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
After Joining:
[1030, 1020, 1010, 1040, 1050, 1070]
이 랩에서는 Java 에서 List의 addAll() 메서드와 스트림 API 의 flatMap() 메서드를 사용하여 두 ArrayList 를 결합하는 방법을 보여드렸습니다. 또한 두 개의 서로 다른 ArrayList 에서 고유한 요소를 결합하는 예시도 보여드렸습니다. 이 랩이 여러분에게 도움이 되었기를 바랍니다!