🌃 TIL
계산기 만들기(level 1)
MNY
2024. 4. 29. 21:02
728x90
반응형
2024.04.29.(월)
💡 오늘의 학습 키워드
- 5주차 -
순수 함수
스트림
람다
Optional
- 숙제 -
mapToDouble()
getAsDouble()
- 코드카타 -
limit
- 개인과제 -
LinkedList 사용법
순수 함수(= 순수한 메서드)
: 외부의 영향력이 미치지 않는 것
스트림
: 컬렉션이 반복을 처리하는 기능
ex) map, filter, forEach...
- map() : 모든 요소를 가공해서 반환
- filter() : 조건에 맞는 것만 반환
- forEach() : 각각의 원소에 넘겨받은 함수 실행
- 스트림 받아오기(.stream())
carsWantToPark.stream()
- 스트림 가공하기
.filter((Car car) -> car.getCompany().equals("Benz"))
- 스트림 결과 만들기
.toList();
- 원본 데이터 변경 X
- 일회용
람다
( 파라미터 값, ... ) -> { 함수 몸체 }
// 한 줄은 return과 중괄호 생략 가능
limit
: 상위 n개 레코드만 보여주기
Optional
: Null Pointer Exception을 방지
- 값이 null인 Optional 생성하기
Optional<Car> emptyOptional = Optional.empty();
- 값이 있는 Optional 생성하기
Optional<Car> hasDataOptional = Optional.of(new Car());
- 값이 있을수도 없을수도 있는 Optional 생성하기
Optional<Car> hasDataOptional = Optional.ofNullable(getCarFromDB());
- Optional 객체 사용하기(값 받아오기)
Optional<String> carName = getCarNameFromDB();
// orElse()를 통해 값을 받아옵니다. 파라미터로는 null인 경우 반환할 값을 적습니다.
String realCarName = carName.orElse("NoCar");
// 위는 예시 코드, 실제는 아래와 같이 사용
String carName = getCarNameFromDB().orElse("NoCar"):
// orElseGet()이라는 메서드를 사용해서 값을 받아올 수 있다
// 파라미터로는 없는 경우 실행될 함수를 전달
Car car = getCarNameFromDB().orElseGet(Car::new);
// 값이 없으면, 그 아래 로직을 수행하는데 큰 장애가 되는 경우 에러를 발생
Car car = getCarNameFromDB().orElseThrow(() -> new CarNotFoundException("NO CAR!))
mapToDouble()
: 숫자형 스트림으로 반환
getAsDouble()
: OptionalDouble 객체의 값을 double로 가져오기 위해서는 getAsDouble()를 사용해야 한다.
LinkedList 사용법
* 정리 엄청 잘하셨움.. 👍
숙제
- 숙제 내용 간략한 설명
stream을 활용해서 아래와 같은 문제를 풀이하는 거 였다.
- 책 분류 준비 코드가 주어진다.
- 카테고리가 여행인 책 제목 조회
- 가격이 16,200원 이하인 책 제목 조회
- 책 제목에 "경제"라는 용어가 들어간 책 제목 조회
- 가격이 가장 비싼 책 가격 조회
- 카테고리가 IT인 책들의 가격 합 조회
- IT 책 할인 이벤트!
- 숙제 결과물 보기(더보기 ..Click)
- 숙제 완료 후 고촬
이번 숙제는 그렇게 어렵지 않았다. 처음엔 문제를 보고 이게 뭐지? 싶었는데..
생각보다 쉽게 완료 할 수 있었다. 다만 mapToDouble 또는 getDouble? 이런 것들을 몰라서 헤맸다.
그리고 map이랑 forEach에 대한 사용은 아직 익숙하지 않아 불편?했다..
코드 카타
* 프로그래머스로 진행
- 알고리즘
- 두 수의 합
- 두 수의 나눗셈
- 각도기
- 짝수의 합
- SQL
- 동명 동물 수 찾기
- 아픈 동물 찾기
- 상위 n개 레코드
- 최솟값 구하기
개인과제
오늘의 회고
- 12시간 중 얼마나 몰입했는가?
생각보다 많은 집중은 하지 못한 것 같다.
오늘은 주의가 산만했던 것 같다.
- 오늘의 생각
이때까지 매번 강의에서 숙제를 내가 풀이한 것들이 거의 없었어서 살짝 암담하다 생각하고 있었는데..
그래도 마지막 주라도 숙제를 온전하게 내가 풀이할 수 있어서 다행이었다.
강의를 완강한 후 개인과제를 진행했는데.. level 1이라 그런지 아직까지는 쉬웠다!
- 내일 학습할 것은 무엇인지
개인과제 2와 더 나아가 3까지 진행할 예정이다.
시간이 된다면 네트워크 관리사 2급 자격증 공부와 독서토론 책을 읽을 예정이다.
그리고 내일은 꼭 형변환 정리와 bfs/dfs 공부를 할 것이다!!!
728x90
반응형