본문 바로가기

프로그래밍/Java

Java 8 스트림

반응형

 

Java 8에서 소개된 스트림 API는 Object Collection을 처리하는 데 사용됩니다.
스트림은 원하는 결과를 생성하기 위해 파이프라인이 될 수 있는 다양한 방법을 지원하는 일련의 객체입니다.

 

Java 스트림의 특징

1. 스트림은 데이터 구조가 아니라 Collections, Array 또는 I/O 채널에서 입력을 가져옵니다.

2. 스트림은 원래 데이터 구조를 변경하지 않고 파이프라인 방법에 따라 결과만 제공합니다.
각 중간 작업은 느리게 실행되며 결과적으로 스트림을 반환하므로 다양한 중간 작업이 파이프라인될 수 있습니다.

3. Terminal 작업은 스트림의 끝을 표시하고 결과를 반환합니다.

 

주요 메소드

 

1. map()  : 함수를 적용하여 한 개체를 다른 개체로 변경하는 데 사용

List<Integer> numberList = Arrays.asList(1,2,3,4,5);
List<Integer> doubleNumberList = numberList.stream().map(x -> x * 2).collect(Collectors.toList());
//[2, 4, 6, 8, 10]

 

2. filter() : 사용자가 제공한 조건을 기준으로 요소를 필터링

List<Integer> numberList = Arrays.asList(1,2,3,4,5);
List<Integer> oddList = numberList.stream().filter(x -> x % 2 == 1).collect(Collectors.toList());
// [1, 3, 5]

 

3. sorted() : 스트림을 정렬할 때 사용

List<Integer> numberList = Arrays.asList(1,5,2,3,4);
List<Integer> oddList = numberList.stream().sorted().collect(Collectors.toList());
// [1, 2, 3, 4, 5]

 

4. forEach() : 스트림의 모든 요소를 순회할 때 사용

List<Integer> numberList = Arrays.asList(1,2,3,4,5);
numberList.stream().forEach(x -> System.out.println(x));

1
2
3
4
5

 

5. collect() : 스트림에서 수행된 중간 동작의 결과를 반환할 때 사용

List<Integer> numberList = Arrays.asList(1,2,3,4,5);
List<Integer> doubleNumberList = numberList.stream().map(x -> x * 2).collect(Collectors.toList());
//[2, 4, 6, 8, 10]

 

6. reduce() : 스트림의 요소를 하나의 값으로 줄일 때 사용

List<Integer> numberList = Arrays.asList(1,2,3,4,5);
int result = numberList.stream().reduce(0, (result, i) -> result+i);
//15

반응형

'프로그래밍 > Java' 카테고리의 다른 글

Mac Java 자바 설치 방법  (0) 2021.04.19
Java 로그인 필수 사이트 HTML 파싱 :: Jsoup  (0) 2021.04.14