잊지 않기 위해 Java에서 리스트를 합치는 방법 중 stream을 이용하여 list를 합치는 방법을 작성합니다.
보통 list를 합치실 때는 addAll() 을 이용해서 list를 합칩니다.
아래는 간단한 예제로 a2에 있는 값을 a1에 합치는 케이스 입니다.
List<String> a1 = new ArrayList<>()
a1.add("A")
a1.add("B")
a1.add("C")
a1.add("D")
List<String> a2 = new ArrayList<>()
a1.add("a")
a1.add("b")
a1.add("c")
a1.add("d")
a1.addAll(a2);
// 실행 결과
[A, B, C, D, a, b, c, d]
Java8에서는 stream을 이용해서 list를 합칠 수 있습니다.
List<String> a1 = new ArrayList<>()
a1.add("A")
a1.add("B")
a1.add("C")
a1.add("D")
List<String> a2 = new ArrayList<>()
a1.add("a")
a1.add("b")
a1.add("c")
a1.add("d")
// stream 사용
List<String> result = Stream.concat(a1.stream(), a2.stream()).collect(Collectors.toList());
만약에 list 안에 list 또는 배열이 존재할 경우에는 어떻게 해결할 수 있을까요?
flatMap을 사용하면 됩니다.
public class TempVO {
private List<String> name;
}
List<TempVO> main = new ArrayList<>()
// flatMap 사용
List<String> result = main.stream().flatMap(list -> list.stream()).collect(Collectors.toList());
리스트를 합치면서 중복 방지를 하고 싶으신 경우에는
steam의 distinct()를 이용하면 쉽게 중복 값을 제거할 수 있습니다.
'IT' 카테고리의 다른 글
Java Stream Grouping - 데이터 그룹화와 집계 (0) | 2024.01.15 |
---|---|
java8 stream list to map & 중복 제거 (0) | 2021.03.11 |
공공기관 문서 발급 시 발급 가능한 프린터가 없을 때? (feat. 모두의 프린터 사용법 리뷰) (1) | 2021.02.04 |
[JAVA] 자바 ... 파라미터 = 가변인자 ( varargs ) (1) | 2021.02.02 |
티스토리 구글 애드센스 신청 방법 & "사이트 검토 중" 해결 방법 (0) | 2021.01.30 |