ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Collection
    대충 정리 일기 2022. 8. 27. 20:39

    Collection Framework이란?

    다수의 데이터를 쉽고 효과적으로 처리할 수 있게 표준화된 방법을 제공하는 클래스의 집합

    Collection의 종류

    List, Set, Map은 인터페이스로 정의되어 있으며 특징에 따라 구분될 수 있음

    • List : 순서가 있는 데이터의 집합, 데이터의 중복 허용
    • Set : 순서가 없는 데이터의 집합, 데이터의 중복을 허용하지 않음
    • Map : 키와 값이 한 쌍으로 이루어지는 데이터의 집합, 키는 중복을 허용하지 않으나, 값은 중복을 허용

    LIst, Set은 Collection 인터페이스를 상속받고, Map은 구조적인 차이로 따로 정의되어 있다.

    List

    • LinkedList : 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우insert : O(1) / delete : O(1) / get : O(n) / contains : O(n)
    • 데이터의 위치 정보만 변경하면 되기 때문에 유용 > 스택, 큐, 양방향 큐 등을 구현하기 위해 사용
    • Stack : 먼저 들어온 데이터가 가장 마지막에 나감.
    • insert : O(1) / delete : O(1) / get : O(n)
    • ArrayList : 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 탐색 성능이 뛰어남
    • insert : O(1) / delete : O(n) / get : O(1) / contains : O(n)
    • Vector : 대용량 처리를 위해 사용했던 자료구조로, 동기식이라 성능이 좋지 않아 잘 쓰이지 않음

    Queue

    • LinkedList : 기본적인 큐를 사용하기 위해 LinkedList로 초기화
    • offer : O(1) / peak : O(1) / poll : O(1) / size : O(1)
    • PriorityQueue : Heap 구조로 구현하여 우선순위가 높은 순서대로 데이터가 나가는 큐
    • offer : O(log n) / peak : O(1) / poll : O(log n) / size : O(1)

    Set

    • HashSet : 해시 값을 이용해서 저장
    • add : O(1) / contains : O(1) / next : O(h/n)
    • TreeSet : 이진 트리구조로 값을 정렬하여 저장
    • add : O(log n) / contains : O(log n) / next : O(log n)

    Map

    • Hashtable : 동기화를 지원하여 HashMap보다 느림, 키로 null 값을 허용하지 않음
    • HashMap : 중복과 순서를 허용하지 않으며 키로 null 값 허용
    • get : O(1) / containsKey : O(1) / next : O(h/n)
    • TreeMap : 키를 기준으로 정렬하여 저장하여 검색이 빠름
    • get : O(log n) / containsKey : O(log n) / next : O(log n)

    '대충 정리 일기' 카테고리의 다른 글

    String 관련 클래스  (0) 2022.09.03
    Annotation  (0) 2022.08.27
    db insert  (0) 2022.08.19

    댓글

Designed by Tistory.