Stream
( 클래스 )
( 특징 )
( 1 )
함수형 프로그래밍에서 차용한 클래스로
내부적으로 반복문이 자동 실행 된다.
( 2 )
정렬된 결과를 자료구조(Collection Framework) 으로
결과를 내보내기가 가능하다
( 3 )
함수 체이닝을 이용
( 함수 체이닝 : jquery : 함수().함수2() ... )
( 4 )
원본을 조작하지 않고 복사본을 사용함 ( : 안전함 )
( Stream 사용 규칙 )
(1) 정의 (2) 가공 (3) 결과 내보내기
( 샘플 ArrayList )
List<String> list = new ArrayList<>();
list.add("apple")
< 대표적인 함수 3가지 >
forEach() 함수
단순출력
( 화살표 함수 : 람다식 이라고 한다. )
list.forEach(System.out::println);
list.forEach(매개변수 -> 실행문);
map() 함수
.stream() : 정의
.map(매개변수 → 실행문) : 가공
.collect(자료구조) : 결과 내보내기
결과 = list.stream().map(매개변수 -> 실행문).collect(자료구조);
// 예제 : 모두 대문자로 바꾸기
List<String> list2 = list.stream().map(s -> s.toUpperCase()).collect(Collectors.toList());
filter() 함수
.stream() : 정의
.filter(매개변수 → 실행문) : 가공
.collect(자료구조) : 결과 내보내기
결과 = list.stream().filter(매개변수 -> 조건문).collect(자료구조);
// 예제 : 문자 길이가 3자 이상만 뽑아내기
List<String> list3 = list.stream().filter(s -> s.length() > 3).collect(Collectors.toList());
toArray() 함수
배열로 내보내기
배열[] 변수 = list.stream().함수.toArray()
'JAVA' 카테고리의 다른 글
Java - Collections (클래스) (0) | 2023.09.27 |
---|---|
Java - Arrays (클래스) (0) | 2023.09.27 |
Java - Optional (클래스) (0) | 2023.09.27 |
Java - Generic (제네릭) (0) | 2023.09.27 |
Java - LocalDate , LocalTime , LocalDateTime (클래스) (0) | 2023.09.26 |