JAVA란 놈은 ....마지막까지 쉽지 않다.
1.익명클래스(anonymous class)
- 정의: 메서드를 담식으로표현하면 메서드의 이름과 반환값이 없진 클래스를 말함.
- 다시말해 클래스와 객체를 생성하지 않고도 메서등의 역할을 대신할수있다.
- 아래와 같이 매우 간단하게 표현이 가능하다.
//메서드형 표현
int max (int a, int b){return a>b? a:b;}
// 람다식 표현
(a,b) -> a>b ? a:b
- 함수형인터페이스
- 함수형 인터페이스는 위의 람다식이 어떤 타입,매개변수는 어떻게 되는지에 대한 내용을 명확히 다루기 위해 만들어진 인터페이스이다.
- 클래스 문위에 @FunctionalInterface로 기입하여 사용한다.
- 함수형 인터페이스는 4가지가 있다.
- Supplier<T> : 매개변수와 변환값이 없음.
- Consumer<T> : 변환값만 있음.
- Function<T,R> : 매개변수를 받아 결과를 변환
- Predicate<T> : 조건식을 표현하는데 사용됨. -> 매개변수는 하나로 boolean타입으로 변환됨.
2. 스트림
- 데이터 소스를 추상화 하고, 데이터를 다루는데 자주사용되는 메서드를 정리해놓은것.
따라서 데이터의 형이 어떤지간에 사용이 가능하며 이는 코드 재사용성이 높아짐을 알수있다. - 스트림은 컬렉션에 정의가 되어있는 메소드이다.
따라서 스트림은 Stream<T>Collection.Stream()으로 만듥수있다. - 스트림의 중간연산
- 자르기
- skip() :스트림의 요소를 건너뛰고 잘라내서 반환한다.
- limit() : 스트림의 요소 중 반환량을 제한한다.
- 요소 걸러내기
- filter() : 주어진조건에 맞지 않는 것을 걸러냄
- distnct() : 중복된 요소를 제거함.
- 정렬
- sorted() : 정렬하는것인데 ()사이에 들어가는 것에 따라 달라진다.
- 변환
- map() : 저장된 값중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할때사용
- mapToint() : 정수타입으로 필드를 뽑아내는 것.
- mapToLong() : 롱타입으로 필드를 뽑아내는 것.
- mapToDouble() : 더블타입으로 필드를 뽑아내는 것.
- map() : 저장된 값중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할때사용
- 조회
- peek() : 연산과 연산사이에 올바르게 처리되었느지 확인할때 사용.
- 자르기
- 스트림의 최종연산
- for-each
- 스트림의 요소를 출력하는 데 사용한다.
- 조건검사(Match)
- allMatch()
- anyMatch()
- noneMatch()
- findFirst()
- findAny()
- 통계
- count()
- sun()
- average()
- max()
- min()
- for-each
'PlayData 백엔드 부트캠프 정리' 카테고리의 다른 글
PlayData 백엔드 부트캠프 Start 13일차 (0) | 2024.08.26 |
---|---|
PlayData 백엔드 부트캠프 Start 12일차 (0) | 2024.08.25 |
PlayData 백엔드 부트캠프 Start 10일차 (0) | 2024.08.21 |
PlayData 백엔드 부트캠프 Start 9일차 (0) | 2024.08.20 |
PlayData 백엔드 부트캠프 Start 8일차 (0) | 2024.08.19 |