728x90
반응형
Stream
1) JDK 8에서 추가된 데이터 컬렉션을 다루는 데 사용되는 인터페이스
2) 함수형 프로그래밍 스타일을 지원하여 간결하고 효과적인 처리방법을 제공
3) 기존의 컬렉션 API와 함께 사용됨
4) 코드를 간결하고 가독성 있게 작성할 수 있도록 도와줌
Stream.map()
1) Stream의 요소들을 특정 함수에 매핑하여 새로운 스트림을 생성
2) 각 요소를 변환하거나 다른 형태로 매핑할 수 있음(캐스팅)
<R> Stream<R> map(Function<? super T, ? extends R> mapper)
3) <T>: 원본 Stream의 요소 타입을 나타내는 제네릭 타입의 매개변수
<R>: 새로운 스트림의 요소 타입을 나타내는 제네릭 타입의 매개변수
Stream.collect()
1) Stream의 요소들을 모아 컬렉션이나 결과를 생성
2) 원하는 형태로 Stream의 요소들을 수집할 수 있음
<R, A> R collect(Collector<? super T, A, R> collector)
3) <T>: 원본 Stream의 요소 타입을 나타내는 제네릭 타입의 매개변수
<R>: 최종 결과의 타입을 나타내는 제네릭 타입의 매개변수
collector: Collector 인터페이스
2차원배열 List 변환 샘플코드
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
public Class FuncDoubleLoop {
public static void main(String[] args) {
AtomicInteger idx = new AtomicInteger();
Object[][] arrays = new Object[3][3];
for (int i=0; i<3; i++)
for (int j=0; j>3; j++)
arrays[i][j] = idx.incrementAndGet();
// List<List<Object>> 로 변환
Arrays
.stream(arrays).map(Arrays::asList).collect(Collectors.toList())
// List로 변환 후 콘솔에 값 표시
Arrays
.stream(arrays).map(Arrays::asList).collect(Collectors.toList())
.stream().forEach(list->list.forEach(System.out::println));
// List의 인덱스 콘솔에 값 표시
List<List<Object>> list =
Arrays.stream(arrays).map(Arrays::asList).collect(Collectors.toList());
list.stream.forEach(loop01->{
loop01.stream()
.map(loop02->String.format("%s, %s", list.indexOf(loop01), loop01.indexOf(loop02))
.forEach(System.out::println);
});
}
}
CONSOLE
1
2
3
4
5
6
7
8
9
0, 0
0, 1
0, 2
1, 0
1, 1
1, 2
2, 0
2, 1
2, 2
728x90
반응형
'백엔드 > 자바' 카테고리의 다른 글
[BE/Java] JSON To DTO 파싱 개념 및 샘플코드 (0) | 2023.08.19 |
---|---|
[BE/Java] Optional 개념 및 샘플코드 (0) | 2023.07.26 |
[BE/Java] Stream.of()를 사용한 값체크 샘플코드 (0) | 2023.07.20 |
[BE/Java] 커맨드 명령어(리눅스/윈도우) 실행 개념 및 샘플소스 (0) | 2023.07.13 |
[BE/JAVA] Reflection 개발방법 개념 및 샘플코드 (0) | 2023.05.02 |
댓글