자바의 정석 1회독을 끝내고 스프링도 다시 기본부터 잡기위해 들었던 강의를 다시 듣기 시작했다.
코딩 테스트와 스프링 강의 들으면서 자바의 정석 발췌독 하는 방법으로 공부할 예정!
- 스프링 강의 리포지토리를 직접 구현하는 부분
- 자바 복습하기 좋을 것 같아서 정리
private static Map<Long, Member> store = new HashMap<>();
@Override
public Optional<Member> findByName(String name) {
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
}
1. Map인터페이스
- 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는 데 사용됨
- 키는 중복 불가, 값은 중복 허용
- Map인터페이스를 구현한 클래스는 Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap 등이 있음
- Map인터페이스의 Collection values() 메서드는 Map에 저장된 모든 value 객체를 Collection타입으로 반환함
2. 스트림(stream)
- 데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드를 정의해 놓은 것
- Collection에 stream()메서드로 스트림 생성
- 스트림 중간연산 .filter()로 조건에 맞는 객체를 거름
- 최종연산 Optional<T> findAny() (병렬일때)스트림의 요소 하나 반환 filter와 같이 쓰임
private static Map<Long, Member> store = new HashMap<>();
@Override
public Optional<Member> findByName(String name) {
return store.values().stream() // Map에 저장된 모든 value 객체를 Collection타입으로 반환, stream()메서드로 스트림 생성
.filter(member -> member.getName().equals(name)) // 람다식(member를 매개변수로 넣어서 member와 이름이 같은 것을 구하기)필터
.findAny(); // 필터와 같이 쓰임, 요소 하나 반환
}
'오늘의 공부 & 기록' 카테고리의 다른 글
2월 13일(월) (0) | 2023.02.13 |
---|---|
스프링부트 강의 기록 (0) | 2023.01.29 |
스프링 강의 메모 (0) | 2023.01.28 |
H2 DB와 인텔리제이(IntelliJ) 연동으로 더 간편하게 DB사용하기 (0) | 2022.12.23 |
RuntimeException 런타임 예외 종류 (0) | 2022.11.29 |