도담도담

Collection이란? 본문

IT 공부/KH 정보교육원

Collection이란?

Zinisang 2021. 5. 31. 18:49

Collection


    Collection → 자료(데이터) 수집API → framework

    List 계열 → 순서(index)존재: ArrayList → DB연동

    Map 계열 → 순서가 없고, ("키" , 값) / 중복 키가 없다.: HashMap → 환경설정

    Set 계열 → 순서가 없고, 값만 존재/ 중복 값이 없다: HashSet → 중복값 제거시

    자바는 자료구조를 제공한다.

    자료구조는 배열과 같이 데이터를 담아 놓고 필요할 때 꺼내어 사용하기 위해서 존재하며, 다음과 같이 분류할 수 있다

    - 순서가 있는 목록형 (List)
    - 순서가 중요하지 않은 세트형 (Set)
    - 먼저 들어온 것이 먼저 나가는 큐형 (Queue)
    - 키 값(key-value)으로 저장되는 맵형 (Map)

    - 자바에서 제공하는 컬렉션의 계열 3가지 (java.util.Collection)
        - List, Set, queue 타입 구현의 모태가 되는 인터페이스
        - Iterable 인터페이스가 확장되어 있다.
            - 데이터 담기용 메서드 = add(), addAll()
            - 데이터 확인용 메서드 = contains(), containsAll(). isEmpty(), equals(), size()
            - 데이터 삭제용 메서드 = clear(), remove(), removeAll()

   

List 인터페이스


        List 인터페이스는 목록을 저장할 때 사용한다.

        크기가 변하는 배열이라고 생각하면 이해가 쉬울 것이다.

        - 각 데이터에 대한 위치가 있다.
        - 위치에 있는 데이터를 꺼내거나 지우고, 원하는 위치에 데이터를 저장하는 작업을 할 수 있다.
        - 특정 데이터의 중복을 허용한다.
        - 순서대로 들어오는 데이터를 담아둘 때 용이하다.
        - Collection 인터페이스를 확장하였다.
        - List 인터페이스를 구현한 클래스로는
            - AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, ToleUnresolvedList, Stack, Vector가 있으며,
            - 이중에서 ArrayList, LinkedList 가 많이 사용된다.

 


    Set 인터페이스

        Set은 List와 비슷하다. 하지만, 데이터의 순서가 중요하지 않다.

        - 데이터를 목록 형태로 담아둔다.
        - 데이터의 위치는 정해져 있지 않으며, 중복된 데이터가 포함 될 수 없다.
        - 중복되는 데이터를 없애고, 유일한 값만을 뽑아 내려고 할 때 용이하다.
        - contains()메서드를 사용하여 데이터가 포함되어 있는지를 확인할 때 용이.
        - Collection 인터페이스를 확장하였다.
        - Set 인터페이스를 구현한 클래스로는
            - AbstractSet, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReaseons, LinkedHashSet, TreeSet이 있으며,
            - HashSet이 많이 사용된다.

 


    Queue 인터페이스

 


        Queue는 데이터를 순차적으로 처리하기 위한 메서드이다.

        - FIFO (First In First Out, 선입선출) 구조로 되어있어, 먼저 들어온 데이터를 처리하기 위해서 꺼내면, 그 뒤에 있던 두번째 데이터가 맨 앞에 존재하게 된다.
        - 데이터가 들어온 순서대로 빨리 처리할 때 용이하다.
        - Collection 인터페이스를 확장하였다. 하지만, Collection에 선언된 add(), remove(), element() 메서드를 사용하는 것은 권장하지 않는다.
        - offer(): 데이터를 저장할 떄 사용
        - poll(): 가장 앞에 있는 데이터를 꺼내고, 지운다.
        - peek(): 가장 앞에 있는 데이터를 꺼내기만 하고, 지우지는 않는다.
        - Queue인터페이스를 구현한 클래스로는
            - AbstractQueue, Array BlockingQueue,ArrayDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque,LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue 등이 있으며,
            - 보통 LinkedList가 많이 사용된다.
    - Map 인터페이스

        Map은 중복되지 않는 키(key) 와 그 키와 연결되어 있는 값(value)이 쌍으로 묶여있는 자료 구조이다.

        따라서, Collection 인터페이스를 확장하지 않았다.

        - key-value 쌍으로 데이터를 관리한다.
        - key는 중복되어서는 안되며, value는 key만 다르다면 중복되어도 상관 없다.
        - Map은 키로 식별할 수 있는 데이터를 담아두고, 데이터의 위치와 상관없이 키 만으로 쉽게 꺼낼 필요가 있을 때 용이하다.
        - put(): 키와 값으로 데이터를 저장할때 사용한다.
        - get(): 키로 데이터를 꺼낼 때 사용한다.
        - Map 인터페이스는 부모 인터페이스가 존재하지 않는다.
        - Map 인터페이스를 구현한 클래스로는
            - AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap,Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons,Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport,TreeMap, UIDefaults, WeakHashMap가 있으며,
            - 이중에서 HashMap 을 많이 사용한다.

    Vector의 경우 addElement 로 한다는점!

'IT 공부 > KH 정보교육원' 카테고리의 다른 글

index 페이지(시작페이지), main 페이지 작성  (0) 2021.06.01
개념정리 노트  (0) 2021.06.01
빈즈(beans)란?  (0) 2021.05.30
CSS 입히기  (0) 2021.05.25
회원가입, 회원수정 페이지  (0) 2021.05.25
Comments