ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Collection Framework (μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬)λž€?
    Java 2023. 1. 14. 19:50

    🌈 Collection Frameworkλž€

    μ»¬λ ‰μ…˜μ€ μ—¬λŸ¬ μš”μ†Œλ₯Ό ν•˜λ‚˜μ˜ 그룹으둜 λ¬Άμ–΄ 효율적으둜 μ €μž₯ν•˜κ³ , 관리할 수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” 클래슀의 집합이닀. 예λ₯Ό λ“€λ©΄ 배열은 크기가 κ³ μ •λ˜μ–΄ μžˆμ§€λ§Œ, μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬λŠ” κ°€λ³€μ μΈ 크기λ₯Ό κ°–λŠ” νŠΉμ§•μ΄ μžˆλ‹€. λ˜ν•œ λ°μ΄ν„° μ‚½μž…, 탐색, μ •λ ¬ λ“±μ˜ API λ₯Ό μ œκ³΅ν•œλ‹€. μ΄λŸ¬ν•œ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬λŠ” μžλ°”μ˜ μΈν„°νŽ˜μ΄μŠ€(interface)λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λœλ‹€.

     

    🌈 Collection Framework의 μ’…λ₯˜

     

    🌈 Collection μΈν„°νŽ˜μ΄μŠ€

    βœ” 리슀트 (List)

    인덱슀 μˆœμ„œλ‘œ μš”μ†Œλ₯Ό μ €μž₯ν•œλ‹€. μ€‘λ³΅λœ 데이터λ₯Ό μ €μž₯ν•  수 μžˆλ‹€. μ•„λž˜λŠ” Listλ₯Ό 상속 λ°›μ•„ κ΅¬ν˜„ν•œ λŒ€ν‘œ 클래슀 및 μ‹œκ°„ λ³΅μž‘λ„ (Time complexity)이닀.

      add() remove() get() contains()
    ArrayList O(1) O(n) O(1) O(n)
    LinkedList O(1) O(1) O(n) O(n)
    Vector
    O(1) O(n) O(1) O(n)
    Stack O(1) O(1) O(n) O(n)

     

    βœ” 큐 (Queue)

    데이터가 μ €μž₯된 μˆœμ„œλŒ€λ‘œ 좜λ ₯λ˜λŠ” μ„ μž…μ„ μΆœ (FIFO: First In First Out) 의 ꡬ쑰λ₯Ό κ°–λŠ” μ„ ν˜• μžλ£Œκ΅¬μ‘°μ΄λ‹€. μ•„λž˜λŠ” Queueλ₯Ό 상속 λ°›μ•„ κ΅¬ν˜„ν•œ λŒ€ν‘œ 클래슀 및 μ‹œκ°„ λ³΅μž‘도 (Time complexity)이닀.

      offer() peak() poll() size() Data Structure
    PriorityQueue O(log n) O(1) O(log n) O(1) Priority Heap
    ArrayDequeue O(1) O(1) O(1) O(1) Linked List

     

    βœ” 집합 (Set) 

    μˆœμ„œ κ°€ μ—†μœΌλ©°, 데이터λ₯Ό μ€‘λ³΅ν•˜μ—¬ μ €μž₯ν•  수 μ—†λ‹€. μ•„λž˜λŠ” Setλ₯Ό 상속 λ°›μ•„ κ΅¬ν˜„ν•œ λŒ€ν‘œ 클래슀 및 μ‹œκ°„ λ³΅μž‘λ„ (Time complexity)이닀.

      add() contains() next() Data Structure
    HashSet O(1) O(1) O(h / n) Hash Table
    LinkedHashSet O(1) O(1) O(1) Hash Table + Linked List
    TreeSet O(log n) O(log n) O(log n) Red-black tree

     

    βœ” Map μΈν„°νŽ˜μ΄μŠ€

    Key, value 쌍으둜 데이터λ₯Ό μ €μž₯ν•œλ‹€. μˆœμ„œκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©°, Key κ°€ 쀑볡될 수 μ—†λ‹€. μ•„λž˜λŠ” Map을 상속 λ°›μ•„ κ΅¬ν˜„ν•œ λŒ€ν‘œ 클래슀 및 μ‹œκ°„ λ³΅μž‘λ„ (Time complexity)이닀.

      get() containsKey() next() Data Structure
    HashMap O(1) O(1) O(h / n) Hash Table
    TreeMap O(log n) O(log n) O(log n) Red-black tree

    h : 해쉬 버킷 μ‚¬μ΄μ¦ˆ, n : 데이터 μ‚¬μ΄μ¦ˆ

     

    Reference

    λŒ“κΈ€

Designed by Tistory.