20220819

한 번에 끝내는 Java/Spring 웹 개발 마스터

  • Stream은 자료의 대상과 관계없이 동일한 연산을 수행하고, 배열이나 컬렉션을 대상으로 연산을 수행한다고 한다.
  • 가장 중요한 점은 스트림 연산은 메모리 공간을 별도로 생성하므로 연산이 수행되도 기존 자료에 대한 변경은 발생하지 않는다고 한다.

1) Stream (정수 배열)

package ch06;

import java.util.Arrays;
import java.util.stream.IntStream;

public class IntArrayTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {1,2,3,4,5};
		
		for(int num : arr) {
			System.out.println(num);
		}
		System.out.println();
		
		IntStream is = Arrays.stream(arr);
		is.forEach(n->System.out.println(n)); 
		//forEach는 하나씩 꺼내는 메소드.
		//람다식을 써서 하나씩 꺼내서 출력한다고 표현.
		
		int sum = Arrays.stream(arr).sum();
		System.out.println(sum);
	}
}

  • 정수 배열에 스트림 생성하여 연산을 수행 하는 예시이다.

2) 중간연산

 sList.stream().filter(s->s.length() >= 5).forEach(s->System.out.println(s));

  • 중간 연산의 예 - filter(), map(), sorted() 등

3) 최종연산

 customerList.stream().map(c->c.getName()).forEach(s->System.out.println(s));

  • 최종 연산의 예 - forEach(), count(), sum() 등

  • 스트림 연산은 중간 연산과 최종 연산으로 구분이 된다.
  • 스트림에 대해 중간 연산은 여러 개의 연산이 적용될 수 있지만 최종 연산은 마지막에 한 번만 적용되는데, 최종연산이 호출되어야 중간 연산에 대한 수행이 이루어 지고 그 결과가 만들어진다.
  • 따라서 중간 연산에 대한 결과를 연산 중에 알수 없고, 이를 '지연 연산'이라고 한다고 한다.

4) 연습 문제

package ch06;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class ArrayListStreamTest {

	public static void main(String[] args) {
		
		List<String> sList = new ArrayList<String>();
		sList.add("Lee");
		sList.add("Jin");
		sList.add("Seok");
		
		Stream<String> stream = sList.stream();
		stream.forEach(s -> System.out.println(s));
		
		sList.stream().sorted().forEach(s -> System.out.print(s + "\t"));
		System.out.println();
		sList.stream().map(s -> s.length()).forEach(n -> System.out.print(n + "\t"));
		System.out.println();
		sList.stream().filter(s -> s.length() >= 4).forEach(m -> System.out.print(m));
	}
}

  • map()과 filter(), sorted()등을 잘 사용하는 것이 스트림을 이용함에 있어서 가장 중요한듯 하다.
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

1개의 댓글

comment-user-thumbnail
2025년 5월 20일

Stream TV connects fans to the latest in movies and pop culture—streaming, reviews, and celebrity stories included. Stream TV

답글 달기
Powered by GraphCDN, the GraphQL CDN