TIL - Collection 이야기

HyeBin, Park·2022년 3월 24일
0

TIL

목록 보기
4/12
post-thumbnail

손을 다쳐서 내용은 나중에 추가 ㅠㅠ

📃 Collection 이야기

🔍 Collection

  • 여러 데이터의 묶음, 추상체 입니다.
  • Iterator 인터페이스를 상속하고 있다.
  • 동적 메모리 할당
  • Collection
    - List : 순서가 있다, 중복 o
    - Set : 순서가 없고, 중복 x
    • Queue
    • Map : key, value

🔍 Iterator

  • Collection에 저자된 요소를 읽어오는 방법을 표준화
  • 여러 데이터의 묶음을 풀어서 하나씩 처리할 수 있는 수단을 제공
  • next()를 통해서 다음 데이터를 조회
  • hasNext()를 통해 다음 데이터유무 조회
  • 역으로 움직일 수 없다.

🔍 Stream

  • 데이터의 연속
  • Collections.stream() 을 제공
  • filter, map, forEach 같은 고차함수(함수를 인자로 받는 함수)가 제공
    • forEach() : 해당 스트림의 요소를 하나씩 소모해가며 순차적으로 요소에 접근하는 메소드 => 한 스트림으로 한번만 호출가능 , 마지막에만 호출
  • Stream을 만들때 : Stream.generate, Stream.iterate
  • 스트림을 사용하면 연속된 데이터에 대해서 풍부한 고차함수들을 사용하여 강력한 기능을 간결하게 표현가능

🔍 Optional

  • NPE (Null Pointer Exception): 가장 많이 발생하는 에러중의 하나

  • 자바에서는 거의 모든것이 레퍼런스 ==> 거의 모든것이 null이 될 수 있다. => 항상 null체크를 해야함

  • Optional : null이 올 수 있는 값을 감싸는 Wraaper 클래스 => NPE 발생 X

  • null을 쓰지 않고 프로그래밍 한다.

    (1) EMPTY 객체를 사용
    (2) Optional
    - null 데이터 : Optional.empty()
    - 데이터 넣을때 : Optional.of({DATA})
    - NULL일수도 있고, 아닐수도 있을때 : Optional.ofNullable()
    - 확인하는 방법은 : .isEmpty(), .isPresent()

  • 성능저하의 문제가 있어 절대 null이 아닐경우 Optional은 사용하지 않는것이 좋다.

0개의 댓글