목록WEB/Java (4)
내로그

중간처리, 최종처리 메소드 중간 처리 메소드 : 리턴 타입이 스트림 최종 처리 메소드 : 리턴 타입이 기본 타입이거나 OptionalXXX 필터링 - distinct() , filter() - distinct() Stream : equals() 메소드가 true가 나오면 동일한 객체로 판단하고 중복을 제거 IntStream, LongStream, DoubleStream : 동일값일 경우 중복을 제거 - filter() 매개값으로 주어진 Predicate가 true를 리턴하는 요소만 필터링 매핑 - flatMapXXX, mapXXX(), asXXXStream(), boxed() 매핑은 중간 처리 기능으로 스트림의 요소를 다른 요소로 대체한다. map 원본 스트림의 요소를 다른 요소로 바꿔서 새로운 스트림을..

스트림 파이프라인 - 리덕션(Reduction) 대량의 데이터를 가공해서 축소하는 것을 말한다. ex) 합계, 평균값, 카운팅, 최대값, 최소값 등 요소가 리덕션의 결과물로 바로 처리 할 수 없을 경우 중간 처리가 필요하다. 중간처리: 필터링, 매핑, 정렬, 그룹핑 중간 처리한 요소를 최종 처리해서 리덕션 결과물을 산출한다. - 스트림은 중간 처리와 최종 처리를 파이프라인으로 해결한다. 파이프라인? 스트림을 파이프처럼 이어 놓은것 중간 처리 메소드는 중간 처리된 스트림을 리턴하고 이 스트림에서 다시 중간 처리 메소드를 호출해서 파이프라인을 형성하게 된다. 최종 스트림의 집계 기능이 시작되기 전까지 중간처리는 지연(Lazy) 된다 중간 처리와 최종 처리 중간 처리: 요소들의 매핑, 필터링, 정렬 최종 처리..

스트림이란? - 스트림은 반복자 컬렉션(배열 포함)의 요소를 하나씩 참조해서 람다식으로 처리할 수 있는 반복자이다. List list = Arrays.asList("김씨","박씨","전씨"); // Iterator 이용 Iterator iterator = list.iterator(); while(iterator.hasNext()){ String name = iterator.next(); System.out.println(name); } // Stream 이용 Stream stream = list.stream(); stream.forEach(System.out::println); 스트림 특징 람다식으로 요소 처리 코드를 제공 - 스트림이 제공하는 대부분의 요소 처리 메소드는 함수적 인터페이스 매개타입을 가..
람다식이란? 람다식 함수(메소드)를 간단한 식으로 표현하는 방법 (타입 매개변수,...) -> { 실행문 } 표현방법 1. 메서드의 이름과 반환타입을 제거하고 -> 를 블록 {} 앞에 추가한다. 2. 반환값이 있는 경우 , 식이나 값만 적고 return 문 생략 가능 (끝에 ; 안 붙임) 3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략가능) 4. 매개변수가 하나인 경우, 괄호() 생략 가능(타입이 없을때만) 5. 블록 안의 문장이 하나 뿐 일때, 괄호{} 생략가능(끝에 ; 안붙임) 단, 하나뿐인 문장이 return 문이면 괄호{} 생략뷸가 *람다식은 익명객체 자바는 람다식을 함수적 인터페이스(메소드를 1개만 가지고있는)의 익명 구현 객체로 취급 Runnable runnable = new..