Repository 코드 작성 중 Java 문법 정리

adorableco·2023년 12월 19일
0
post-thumbnail

Map<Long,Member>

  • key 로 value를 얻어내는 방식
  • key 는 중복 허용 ❌
  • value 는 중복 허용 🆗
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "Sally");

-> key가 "name"이고, value가 "Sally" 인 것을 map에 삽입하는 것

Optional<T>

  • NullPointerException 을 방지하기 위해 null 값이 오면 감싸는 것
  • Optional.ofNullable() : 값이 null 이 와도 객체 생성
  • Optional.of() : 값이 null 이 아닌 경우에만 객체 생성
  • Optional.empty() : 값이 갖지 않는 객체 생성

Map 에서 특정 조건을 만족하는 객체 찾기

    @Override
    public Optional<Member> findByName(String name) {
        return store.values().stream()
                .filter(member -> member.getName().equals(name))
                .findAny();
    }
  1. map.values() : map의 값(collection) 들을 가져온다. (값은 각각의 객체를 의미)
  2. .stream(): collection을 stream으로 변환한다.
    • stream() : Collection 데이터를 질의 형태로 처리할 수 있도록 하는 기능
  3. .filter(member -> member.getName().equals(name)) : getName() 메서드를 통해 얻은 멤버의 이름이, 주어진 name 과 일치하는지를 확인한다.
    • 여기서 member 은 Map의 각 값들이 stream으로 변환된 값들이다. ➡️ 진짜 Member class가 아니라 일종의 임시 변수
  4. .findAny() : 위 조건에 만족하는 객체가 존재하면 해당 객체(member)을 Optional 로 반환하고, 없으면 빈 Optional을 반환한다.
profile
👩🏻‍💻

0개의 댓글