230307 굿모닝세션

허크·2023년 3월 7일
0

컬렉션 프레임워크


컬렉션 프레임워크

  • 컬렉션 프레임워크의 인터페이스는 List, Set, Map이 있다

    • 이중 Map은 Collection 인터페이스를 상속받지 않는다
  • 컬렉션 클래스들은 객체를 요소를 가진다

List

  • List는 저장 순서(인덱스) 유지, 중복 허용

  • ArrayList는 크기를 초과하여 요소를 추가하면 자동으로 크기가 늘어난다

    • 초기 크기를 지정하지 않으면 기본 크기는 10이다
  • ArrayList는 순차적으로 요소를 추가하거나 삭제할 때 좋은 성능을 보인다

  • LinkedList는 요소 검색시 덜 효율적이지만, 중간의 요소를 추가하거나 삭제할 때 효율적이다

  • LinkedList는 객체의 참조값들이 산발적으로 저장된다

    • 이런 특성 때문에 위의 특성의 차이가 발생한다

Iterator

  • 이터레이터를 생성하여 참조변수 it에 할당
    • Iterator<String> it = al.iterator();

Set

  • Set은 중복 저장 X, 저장 순서를 유지하지 않는다

  • TreeSet은 이진탐색트리를 통해 데이터를 자동으로 정렬해준다

    • 부모노드는 자식노드보다 큰 값을 가진다 (X) -> 크기에 따라 저장되는 위치가 다름

Map

  • Key + Value의 Entry 객체로 데이터를 저장

    • Key는 중복을 허용하지 않음
  • HashMap은 Key 객체를 해싱하여 메모리 주소를 얻음

    • 해당 메모리주소에 Value 객체가 저장됨
  • HashMap을 순회하려면 Set이나 컬렉션으로 변환하여 iterator를 사용하여야 한다

  • hasMap의 Key-Integer, Value-Boolean타입이면

    • Set<Map.Entry<Integer,Boolean>> entrySet = hasMap.entrySet();
  • hashMap의 Key값은 중복을 허용하지 않으므로 KeySet을 사용하면 Key 객체의 값을 Set에 저장한다

  • hashMap의 Value값은 중복을 허용하므로 values는 set이 아니라 collection 타입이다

profile
codestates seb 44th // 다크모드로 보는걸 추천드립니다

0개의 댓글