람다와 스트림

이영재·2022년 5월 29일
0

람다

람다식(Lambda expression)은 메서드를 하나의 식(expression)으로 표현한 것.

🤔 왜why 람다를 사용하는가?

메서드를 좀 더 간결하고 이해하기 쉽게 작성할 수 있다.
람다식은 메서드의 매개변수로 전달될 수 있고, 메서드의 결과로 반환될 수도 있기 때문에 메서드를 변수처럼 사용할 수 있다.

스트림

  • A sequence of elements supporting sequential and parallel aggregate operations.
  • 스트림은 데이터 소스를 추상화하여, 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있으므로 코드의 재사용성을 높인다.
  • 스트림은 데이터 소스를 변경하지 않는다.
    • 필요하다면 변경 후 결과를 다른 참조변수에 담아야 한다.
  • 스트림은 일회용이다.
    • 스트림은 한 번 사용하면 닫혀서 다시 사용할 수 없다.

🤔 왜why 스트림을 사용하는가?

스트림을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터까지도 모두 같은 방식으로 다룰 수 있다.

String[] strArr = {"aaa", "ddd", "ccc"};
List<String> strList = Arrays.asList(strArr);

// 스트림을 사용한 경우
Stream<String> strStream1 = strList.stream();
Stream<String> strStream2 = Arrays.stream(strArr);

strStream1.sorted().forEach(System.out::println);
strStream2.sorted().forEach(System.out::println);

// 스트림을 사용하지 않은 경우
Arrays.sort(strArr);
Collections.sort(strList);

for(String str : strArr) {
	System.out.println(str);
}

for(String str : strList) {
	System.out.println(str);
}





참고

profile
왜why를 생각하는 두괄롬이 되자!

0개의 댓글