728x90
728x90
Java2022. 12. 17. 19:46Stream(2)

동작 순서 다음 스트림에서는 최종 작업인 findFirst 메소드를 호출합니다. 과연 출력 결과는 어떨까요? list.stream() .filter(el -> { System.out.println("filter() was called."); return el.contains("a"); }) .map(el -> { System.out.println("map() was called."); return el.toUpperCase(); }) .findFirst(); 요소는 3개인데 결과는 다음처럼 filter 두 번, map 이 한 번 출력됩니다. filter() was called. filter() was called. map() was called. 여기서 스트림이 동작하는 순서를 알아낼 수 있습니다. 모든..

Java2022. 12. 17. 13:39Stream(1)

스트림 Streams 자바 8에서 추가한 스트림(Streams)은 람다를 활용할 수 있는 기술 중 하나입니다. 자바 8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 foreach문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이었습니다. 간단한 경우라면 상관없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메소드를 나눌 경우 루프를 여러 번 도는 경우가 발생합니다. 스트림은 '데이터의 흐름’입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또 하나의 장점은 간단하게 병렬처..

728x90
728x90
image