ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java: 컬렉션 프레임워크(Collection Framework) 개요
    각종 학습 요약/Java 2022. 5. 17. 13:41

    Java: 컬렉션 프레임워크(Collection Framework)

    컬렉션 프레임워크란?


    데이터를 저장하기 위한 유용한 자료구조들을 구현해놓은 자바 클래스와 인터페이스의 집합.

    주요 인터페이스(List, Map, Set)의 특징


    • List: 순서를 유지하는 선형적 구조. 마치 배열과도 비슷하다.
    • Set: 순서 없이 값만 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐).
    • Map: 순서 없이 키와 값이 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐).

    List와 Set


    List 주요 메서드

    Object set(int index, Object o), addAll(int index, Collection c): 지정된 index에 삽입한다
    Object get(int index) : 지정한 index 요소를 반환한다
    int indexOf(Object o), lastIndexOf(Object o) : 정방향/역방향으로 탐색하여 위치를 반환한다
    List subList(int from, int to) : from부터 to 인덱스를 리스트로 반환
    void sort(Comparator c) : 주어진 비교자(Comparator)로 비교하여 정렬

    List / Set 공통 주요 메서드

    void add(Object o), addAll(Collection c) : 값을 넣을때 사용
    boolean contains(Object o), containsAll(Collections c) : 값을 찾을 때 사용(저장되어 있는지)
    Iterator iterator() : 반복자(iterator)를 반환
    boolean isEmpty() : 비어있는지 확인
    int size() : 크기 반환
    void clear() : 컬렉션을 비운다
    boolean remove(Object o), removeAll(Collection c) : 요소를 삭제한다
    Object[] toArray(), toArray(Object[] oa) : array로 반환한다(또는 oa에 담는다)

    List 주요 구현 클래스

    ArrayList : 배열과 유사하나 크기가 유동적이다. 조회에 유리한 구조.
    LinkedList : ArrayList와 기능적으로 유사하나, 요소의 index가 특정되어있지 않고 매 요소가 자신의 앞 요소 참조값 / 뒷 요소 참조값을 기억하면서 순차적으로 연결되어 있다. 삽입/삭제에 유리한 구조.

    Set 주요 구현 클래스

    HashSet : 해시 값으로 Set을 구현한 클래스
    LinkedHashSet : 앞/뒤 요소를 기억하여 순서를 알 수 있는 HashSet
    TreeSet : 이진탐색이 가능하여 정렬을 할 수 있는 클래스

    Map


    Map 주요 메서드

    Object put(Object key, Object value) : 주어진 키로 주어진 값을 저장. 새로 입력된 키면 null을 반환하고 해당 키로 값이 존재했었다면 이전 값 리턴.
    Object get(Object key) : 주어진 키의 값을 리턴
    boolean containsKey(Object key) : 주어진 키가 있는지 확인
    boolean containsValue(Object value) : 주어진 값이 있는지 확인
    Set entrySet() : Map.Entry 객체(키/값 쌍으로 구성된 객체)를 Set타입으로 반환
    Set keySet() : 모든 키를 Set타입으로 반환
    Collection values() : 모든 값을 Collection타입으로 반환
    boolean isEmpty() : 비어있는지 확인
    int size() : 키/값 쌍의 개수를 반환
    Object remove(Object key) : 해당 키의 키/값 쌍을 삭제하고 값을 반환
    void clear() : 모든 내용을 삭제

    Map 주요 구현 클래스

    HashMap : 해시값으로 Map을 구현한 클래스
    LinkedHashMap : 앞/뒤 요소를 기억하여 순서를 알 수 있는 HashMap
    TreeMap : 이진탐색이 가능하여 정렬을 할 수 있는 클래스

    컬렉션 프레임워크 계층도


    주의 : 위 계층도는 geeksforgeeks의 프레임워크 계층도를 참고하여 그렸으나, 잘못된 부분이 있습니다. LinkedHashMap의 조상을 확인하던 중 알게 되었습니다. 아직 수정하지는 못했지만, 위의 그림처럼 잘못된 정보가 웹 상에 많은 것 같습니다(잘못된 부분을 확인하시라는 의미에서 지우지 않고 남겨둔 것입니다). 주의하시고, 계층은 직접 확인하거나 공식문서를 참고하시길 추천드립니다.

    댓글

Designed by Tistory.