본문 바로가기
TIL

내일배움캠프 3주차 람다와 스트림

by 율량동박씨 2024. 5. 3.

오늘의 키워드

    • 람다
    • 스트림

오늘의 내용

  • 람다
    • 어딘가 구현하지 않고 그냥 간단하게 구현해서 넘길 때 사용된다
    • 함수값으로 평가되며 한 번만 사용된다
    • 람다 함수 기본 문법
// 기본적으로 문법은 다음과 같습니다.
(파라미터 값, ...) -> { 함수 몸체 }

// 아래의 함수 두개는 같은 함수입니다.
// 이름 반환타입, return문 여부에 따라 {}까지도 생략이 가능합니다.
public int toLambdaMethod(int x, int y) {
return x + y;
}
(x, y) -> x + y

// 이런 함수도 가능하겠죠?
public int toLambdaMethod2() {
return 100;
}
() -> 100

// 모든 유형의 함수에 가능합니다.
public void toLambdaMethod3() {
System.out.println("Hello World");
}
() -> System.out.println("Hello World")

 

  • 스트림
    • 자료구조의 흐름을 객체로 제공해 주고, 그 흐름동안 사용할 수 있는 메서드들은 api로 제공해 준다
    • 원본 데이터를 변경하지 않는다
    • 일회용이다
    • 스트림을 사용하는 방법
      • 스트림을 받아오기 (.stream())
      • carsWantToPark.stream()
      • 스트림 가공하기
      • .filter((Car car) -> car.getCompany().equals("Benz"))
      • 스트림 결과 만들기
      • .toList();
    • 대표 API : map(), forEach(), filter()
  • Optional
    • Oprional<T>클래스를 사용해 Null Pointer Exception을 방지한다
    • Oprional<T>는 null이 올 수 있는 값을 감싸는 Wrapper 클래스이다
    • Optional이 비어 있더라도 참조해도 Null Pointer Exception이 발생하지 않는다

오늘의 회고

  • 강의 내용은 완강을 했는데 사실 5주 차 내용은 아직 내 Java실력이 부족해서인지 내용이해가 완전히 되지 않았다
  • 보충반 수업이 시작됐는데 다행히 튜터님이 모르는 내용을 잘 설명해 주셔서 이해가 잘됐다
  • 팀프로젝트 일정 맞추려면 주말에도 붙잡고 있어야 될 거 같은데 다행히 월요일은 쉬는 날이다