본문 바로가기

멀티캠퍼스 풀스택 과정/Java의 정석55

자바의 정석11-6 스트림의 그룹화와 분할(groupingBy, partitioningBy) 그룹화(groupingBy)는 스트림의 요소를 특정 기준으로 그룹화 하는 것을 의미한다. 분할(partitioningBy)은 스트림의 요소를 두 가지, 즉 지정된 조건에 일치하는 그룹과 일치하지 않는 그룹으로의 분할을 의미한다. partitioningBy( )는 Predicate로, groupingBy( )는 스트림의 요소를 Function으로 분류한다. partitioningBy( )는 스트림을 2분할 하고, groupingBy( )는 스트림을 n분할 한다. (둘 다 Collectors 클래스 안에 있다.) 1. 스트림의 분할 - paritioningBy() -> 2분할을 할 때는 groupingBy( )보다는 partitioningBy( ) Comparator생략! (import static java.. 2022. 2. 2.
자바의 정석11-5 스트림의 연산(최종연산) 스트림의 연산(중간연산, 최종연산) 중간연산 최종연산 n번 1번 Stream을 반환 결과를 반환(int, Boolean ..) 스트림의 요소를 소모해서 최종연산 후에는 스트림이 닫히게 되고 더이상 사용 불가 최종 연산 설명 void forEach(Consumer 2022. 2. 2.
자바의 정석11-4 스트림의 연산(중간연산과 Optioanl<T>) 스트림의 연산(중간연산, 최종연산) 중간연산 중간 연산 설명 Stream distinct( ) 중복을 제거 Stream filter(Predicate predicate) 조건에 안 맞는 요소 제외 Stream limit(long maxSize) 스트림의 일부를 잘라낸다. Stream skip(long n) 스트림의 일부를 건너뛴다. Stream peek(Consumer action) 스트림의 요소에 작업수행(작업 중간에 잘 처리됐나 확인) Stream sorted( ) Stream sorted(Comparator comparator)(정렬기준) 스트림의 요소를 정렬한다. Stream DoubleStream IntStream Long Stream Stream DoubleStream IntStream Lon.. 2022. 1. 16.
자바의 정석11-3 스트림(Stream), 스트림 생성 스트림(Stream) - 다양한 데이터 소스(컬렉션, 배열, 임의의 수 등)를 표준화된 방법으로 다루기 위한 것 - 스트림: 데이터의 연속적인 흐름 List로 형변환을 한 Arraylist를 각각의 타입으로 스트림 생성 1) 스트림 만들기 2) 중간연산(0~n번) 3) 최종연산(1번) => 결과 (1) 스트림 생성 String[] strArr = {"aaa", "bbb", "ccc"}; // (2)문자열 배열 List strList = Arrays.asList(strArr); // (1)같은 내용의 문자열을 저장하는 List (1) Stream strStream1 = strList.stream(); // 스트림을 생성(collection안에 속해 있는 List로 변환한 뒤에 stream()사용) (2) .. 2022. 1. 16.
자바의 정석11-2 java.util.Function 패키지의 함수형 인터페이스와 메서드 참조 java.util.function 패키지 java.util.function패키지에 일반적으로 자주 쓰이는 형식의 메서드를 함수형 인터페이스로 미리 정의해놓았다. - java.util.function 패키지의 주요 함수형 인터페이스 -> Runnable은 입출력 없고 Function 입출력 있음(일반적인 함수 반드시 두 개의 타입 지정) -> Consumer은 입력만 있고 출력이 없다. Supplier는 입력이 없고 출력만 있다. -> Predicate는 Function의 변형으로 반환값이 boolean이라는 것만 제외하면 Function과 동일하다.(조건식을 함수로 표현하는데 사용함): 반환 값이 ture or false -> 매개변수의 타입으로 보통 'T'를 사용하기 때문에 알파벳에서 'T'이 다음 문.. 2022. 1. 16.
자바의 정석11-1 람다와 함수형인터페이스 람다식(Lambda expression) - 메서드(함수)를 하나의 ‘식(expression)’으로 표현한 것 - 람다식은 메서드(함수)를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. - 람다식으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. - 객체지향언어의 메서드(클래스에 종속적) == 절차지향언어의 함수(클래스에 독립적) public int max(int a, int b) { return a > b ? a : b; } (a, b) -> a > b ? a : b 람다식으로 표현 -> 람다식은 메서드의 매개변수로 전달어 질 수 있고 메서드의 결과로 반환될 수 있다.(람다식으로 인해 메서드를 변수처럼 다루는 것이 가능해짐) -> 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없.. 2022. 1. 16.