π 1. λ°°μ΄
π 1. κ°λ λ° νΉμ§
- λ°°μ΄(Array)μ΄λ κ°μ νμ μ μ¬λ¬ λ³μλ₯Ό νλμ λ¬ΆμμΌλ‘ λ€λ£¨λ κ²μ λ§νλ€.
- λ°°μ΄μ ꡬμ±νλ κ°κ°μ κ°μ λ°°μ΄ μμ(Element), λ°°μ΄μμμ μμΉλ₯Ό κ°λ¦¬ν€λ μ«μλ₯Ό μΈλ±μ€(Index)λΌκ³ νλ€.
- λ°°μ΄μ μ°Έμ‘° κ°μ²΄μ΄λ―λ‘ λ°°μ΄μ κ°λ¦¬ν€λ μ°Έμ‘° λ³μλ μ€ν μμμ ν λΉλλ©°, μ΄ μ°Έμ‘° λ³μκ° κ°λ¦¬ν€κ³ μλ μ£Όμκ°μ μ€μ ν μμμ μμ±λλ λ°°μ΄μ μ£Όμκ°μ΄λ€.
- λ°°μ΄μ ν¬κΈ°λ κ³ μ μ μ΄λ€.
- λ©λͺ¨λ¦¬ 곡κ°μ΄ μ°μμ μΌλ‘ ꡬμ±λλ€.
π 2. μ₯μ
- μΈλ±μ€λ₯Ό νμ©ν μ μκΈ° λλ¬Έμ, νΉμ μμΉμ μλ μμμ λν μ κ·Όμ μκ°λ³΅μ‘λκ° O(1)μ΄λ€.
- μΈλ±μ€λ₯Ό νμ©ν μ μκΈ° λλ¬Έμ, νΉμ μμΉμ μλ μμμ λν μμ μ μκ°λ³΅μ‘λκ° O(1)μ΄λ€.
π 3. λ¨μ
- ν¬κΈ°κ° κ³ μ μ μ΄κΈ° λλ¬Έμ λ λ§μ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄μλ λ ν° λ°°μ΄μ λ§λ€κ³ μ΄μ λ°°μ΄μ λ°μ΄ν°λ₯Ό μλ‘ λ§λ λ°°μ΄λ‘ 볡μ¬ν΄μΌ νλ€. μ΄λ, O(n)μ μκ°λ³΅μ‘λκ° μμλλ€.
- λ°°μ΄ μ€κ°μ μλ μμλ₯Ό μ κ±°ν΄μΌ νλ κ²½μ°, μμ νκ³ μ νλ μμΉμ μΈλ±μ€ λ€μ μλ μμλΆν° λ°°μ΄μ 맨 λμ μλ μμκΉμ§ μμΌλ‘ ν μΉΈμ© μ΄λν΄μ€μΌ νλ€. μ΄λ, O(n)μ μκ°λ³΅μ‘λκ° μμλλ€.
- λ°°μ΄ μ€κ°μ μμλ₯Ό μ½μ ν΄μΌ νλ κ²½μ°μλ μμ λμΌνκ² O(n)μ μκ°μ΄ μμλλ€.
π 2. λ°°μ΄λ¦¬μ€νΈ(ArrayList)
π 1. κ°λ λ° νΉμ§
- λ°°μ΄λ¦¬μ€νΈ(ArrayList)λ λ΄λΆμ μΌλ‘ λ°°μ΄(Array)μ μ΄μ©νμ¬ μμλ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ΄λ€.
- ArrayList ν΄λμ€λ λ΄λΆμ μΌλ‘ Object [] λ°°μ΄μ μ΄μ©νμ¬ μμλ₯Ό μ μ₯νλ€.
- ν¬κΈ°κ° κ³ μ λμ΄ μλ λ°°μ΄κ³Ό λ¬λ¦¬ λ°μ΄ν° μ μ¬λμ λ°λΌ κ°λ³μ μΌλ‘ 곡κ°μ λ리거λ μ€μΈλ€.
- List μΈν°νμ΄μ€μμ μ μν λ€μν λ©μλλ₯Ό μ¬μ©ν μ μλ€.
- λ°μ΄ν°λ μ°μμ μΌλ‘ 리μ€νΈμ λ€μ΄μμ΄μΌ νλ―λ‘ μ€κ°μ λΉ κ³΅κ°μ΄ μμΌλ©΄ μ λλ€.
π 2. μ₯μ
- μΈλ±μ€λ₯Ό νμ©ν μ μκΈ° λλ¬Έμ νΉμ μμΉμ μλ μμμ λν μ κ·Όκ³Ό μμ μ λν΄μ O(1)μ μκ°λ³΅μ‘λκ° μμλλ€.
- μ μ₯ 곡κ°μ ν¬κΈ°κ° κ°λ³μ μΌλ‘ λ³νκΈ° λλ¬Έμ λ°λ‘ μ κ²½μ μ°μ§ μμλ λλ€.
- λ°°μ΄ λ¦¬μ€νΈμ μ€κ°μ λΉ κ³΅κ°μ νμ©νμ§ μκΈ° λλ¬Έμ λ°°μ΄μ λΉν΄ λ©λͺ¨λ¦¬ 곡κ°μ λλΉκ° μλ€.
π 3. λ¨μ
- λ©μλλ₯Ό νμ©ν΄μ κ°νΈνκ² μ€κ°μ μμλ₯Ό μ½μ /μμ ν μ μμ§λ§ μκ°λ³΅μ‘λλ μ¬μ ν O(n)μ΄λ€.
- λν, μ μ₯ 곡κ°μ νμ₯ λ° λ³΅μ¬νλ κ³Όμ μμλ μκ°λ³΅μ‘λκ° O(n)μ΄λ€.
π 3. μ°κ²°λ¦¬μ€νΈ(LinkedList)
π 1. κ°λ λ° νΉμ§
- λ°°μ΄λ¦¬μ€νΈ(ArrayList)κ° λ΄λΆμ μΌλ‘ λ°°μ΄μ μ΄μ©νμ¬ λ©μλλ‘ μ‘°μμ΄ κ°λ₯νκ² λ§λ 컬λ μ μ΄λΌλ©΄, μ°κ²°λ¦¬μ€νΈ(LinkedList)λ λ Έλ(κ°μ²΄)λΌλ¦¬μ μ£Όμ ν¬μΈν°λ₯Ό μλ‘ κ°λ¦¬ν€λ©° μ°Έμ‘°(λ§ν¬)ν¨μΌλ‘μ¨ μ΄μ΄μ§λ ꡬ쑰μ΄λ€.
- μ°κ²°λ¦¬μ€νΈμ μ’ λ₯λ‘λ λ¨λ°©ν₯ μ°κ²° 리μ€νΈ(Singly Linked List), μλ°©ν₯ μ°κ²° 리μ€νΈ(Doubly Linked List), μλ°©ν₯ μν μ°κ²° 리μ€νΈ(Doubly Circular Linked List)κ° μλ€.
- μλ°μμ LinkedList 컬λ μ ν΄λμ€λ μλ°©ν₯ μ°κ²° 리μ€νΈλ‘ λ§λ€μ΄μ Έ μλ€.
- μ°κ²°λ¦¬μ€νΈ λν μ μ₯ 곡κ°μ ν¬κΈ°λ κ°λ³μ μ΄λ€.
π 2. μ₯μ
- 맨 μμ μμλ₯Ό μ½μ νλ κ²½μ° κΈ°μ‘΄ μμλ€μ ν μΉΈμ© μ΄λν΄μ€ νμκ° μμΌλ―λ‘ O(1)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
- μλ°©ν₯ μ°κ²° 리μ€νΈμ κ²½μ° λ§¨ λ€μ μμλ₯Ό μ½μ ν λ O(1)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
- λ°°μ΄μ΄λ λ°°μ΄ λ¦¬μ€νΈμ λ¬λ¦¬ μ μ₯ 곡κ°μ μλ‘μ΄ μμκ° μ½μ λκ±°λ μμ λ λ, μ μ₯ 곡κ°μ νμ₯νκ±°λ μΆμνμ¬ μ¬ν λΉν΄ μ€ νμκ° μλ€.
π 3. λ¨μ
- μΈλ±μ€λ₯Ό νμ©ν μ μκΈ° λλ¬Έμ νΉμ μμΉμ μλ μμμ μ κ·ΌνκΈ° μν΄μλ λ Έλλ€μ λ°λΌκ°λ©΄μ νμν΄μΌ νλ€. κ·Έλμ O(n)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
- νΉμ μμΉμ μλ μμμ λν μμ λ μμ κ°μ μ΄μ λ‘ O(n)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
- μ€κ°μ μμλ₯Ό μ½μ νκ±°λ μμ νλ κ²½μ°μλ ν΄λΉ μμΉλ₯Ό μ°ΎμμΌ νκΈ° λλ¬Έμ O(n)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
π 4. λΉκ΅
λ°°μ΄(Array) | λ°°μ΄ λ¦¬μ€νΈ(ArrayList) | μ°κ²° 리μ€νΈ(LinkedList) | |
μ μ₯ 곡κ°μ ν¬κΈ° | κ³ μ μ | κ°λ³μ | κ°λ³μ |
λ©λͺ¨λ¦¬ 곡κ°μ μ°μμ± | O | O | X |
νΉμ μμΉμ μλ μμμ λν μ κ·Ό | O(1) | O(1) | O(n) |
νΉμ μμλ₯Ό νμ | O(n) | O(n) | O(n) |
맨 μμ μμ μΆκ° / μμ | O(n) | O(n) | O(1) |
μ€κ°μ μμ μΆκ° / μμ | O(n) | O(n) | O(n) |
맨 λ€μ μμ μΆκ° / μμ | O(n) | O(n) | O(1) |
ν΄λΉ κΈμ
Inpa λμ 'JAVA λ°°μ΄(Array) μλ²½ λ€λ£¨κΈ° κ°μ΄λ', 'μλ° ArrayList ꡬ쑰 & μ¬μ©λ² μ 리', 'μλ° LinkedList ꡬ쑰 & μ¬μ©λ² - μ 볡νκΈ°', 'ArrayList vs LinkedList νΉμ§ & μ±λ₯ λΉκ΅',
λͺ½κ΅¬ λμ '[Java] λ°°μ΄(Array) vs. λ°°μ΄λ¦¬μ€νΈ(ArrayList) vs. μ°κ²°λ¦¬μ€νΈ(LinkedList)'
λ₯Ό μ°Έκ³ νμμ΅λλ€.
'π μλ£κ΅¬μ‘° > κ°λ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°°μ΄(Array) (0) | 2023.06.11 |
---|