PlayData 백엔드 부트캠프 정리

PlayData 백엔드 부트캠프 Start 11일차(JAVA 수업끝...ㅠ)

효건 2024. 8. 23. 00:54

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() :  더블타입으로 필드를 뽑아내는 것.
    • 조회
      • peek() : 연산과 연산사이에 올바르게 처리되었느지 확인할때 사용.
  • 스트림의 최종연산
    • for-each
      • 스트림의 요소를 출력하는 데 사용한다.
    • 조건검사(Match)
      • allMatch()
      • anyMatch()
      • noneMatch()
      • findFirst()
      • findAny()
    • 통계
      • count()
      • sun()
      • average()
      • max()
      • min()