κ΅λΉμ§μ D+64
- μλ°νλ‘κ·Έλλ°8 -
컬λ μ νλ μμν¬μ κ°λ
- μ¬μ¬μ©μ΄ κ°λ₯ν 컬λ μ λ°μ΄ν° ꡬ쑰λ₯Ό ꡬννκΈ° μν ν΄λμ€ λ° μΈν°νμ΄μ€μ μ§ν©μ΄λ€.
- νμ₯μ±κ³Ό μ μ°μ±μ΄ λκ²νλ λΌμ΄λΈλ¬λ¦¬ μ§ν©μ΄λ€.
- νλ μμν¬λΌκ³ νννλ μ¬μ€μ λΌμ΄λΈλ¬λ¦¬ λ°©μμΌλ‘ λμνλ€.
• 컬λ μ λ°μ΄ν° ꡬ쑰
λ²μ©μ μΌλ‘ μ¬μ©νλ λ°μ΄ν° ꡬ쑰λ₯Ό μλ―Ένλ€.
List<E> μΈν°νμ΄μ€
- μμκ° μλ λ°μ΄ν°μ μ§ν©μ΄λ€.
- μ€λ³΅μ΄ νμ©λλ€.
• ArrayList<E>
- λ°°μ΄κΈ°λ°μ μλ£κ΅¬μ‘° μ΄λ€.
- λ°μ΄ν°κ° λ³κ²½μμ΄ μ μ§λλ κ²½μ°μ μ¬μ©νκΈ° μ’λ€.
μ₯μ
1. μ§κ΄μ μΌλ‘ μ΄ν΄νκΈ°κ° μ½λ€.
2. λ°μ΄ν°μ μ½λ μλκ° λΉ λ₯΄λ€.
λ¨μ
1. λ°μ΄ν°κ° λ³κ²½λμμ λ(μΆκ°, μμ ) μλκ° λλ €μ§λ€. (μ€λ²ν€λκ° ν¬λ€)
μΆκ° : λ°μ΄ν°λ₯Ό μλ‘ ν λΉ
μμ : λ°μ΄ν°μ κ³Όλ€ν μ΄λ
• LinkedList<E>
- 리μ€νΈκΈ°λ°μ μλ£κ΅¬μ‘° μ΄λ€.
- λ°μ΄ν°κ° λΉλ²νκ² μΆκ°λ μμ λ λ μ¬μ©νκΈ° μ’λ€.
μ₯μ
1. λ°μ΄ν°μ μΆκ° λ° μμ κ° μ©μ΄νλ€.
λ§ν¬λ§ λ°κΏμ£Όλ©΄ λλλ€ => ArrayListμ λ¨μ μ 극볡ν ꡬ쑰
λ¨μ
1. λ°μ΄ν°μ μ κ·Όν λ μλμ μΌλ‘ λ리λ€.
λ°λ³΅μ (Iterator)
public static void main(String[] args) {
List<String> list = new LinkedList<>();
....
Iterator<String> itr = list.iterator(); ....
while(itr.hasNext()) { // next λ©μλκ° λ°νν λμμ΄ μλ€λ©΄,
str = itr.next(); // next λ©μλλ₯Ό νΈμΆνλ€.
....
}
}
λ΄λΆμλ£κ΅¬μ‘°μ ννμ μκ΄μμ΄ λ°μ΄ν°μ μμλΆν° λκΉμ§ μννλ κΈ°λ₯μ ꡬννκΈ° μν λ³λμ μλ£κ΅¬μ‘°μ΄λ€.
νμμ±
μ°λ¦¬κ° λ°μ΄ν°λ₯Ό λͺλ²μ§Έ κ°μ Έμ€λΌκ³ νμλμλ μλ£κ΅¬μ‘°μ λ°λΌ μ½κ² κ°μ Έμ¬ μλ μκ³ μ΄λ ΅κ² κ°μ Έμ¬ μλ μλ€.
νμ§λ§ μ°λ¦¬κ° λͺ¨λ λ°μ΄ν°λ₯Ό κ°μ Έμ€λΌκ³ νμ κ²½μ°μ λ΄λΆκ΅¬μ‘°μ μκ΄μμ΄ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ©΄ λλ©°, μ΄λ λΉλ²νκ² μ¬μ©λλ€.
κ·Έλμ μ΄λ₯Ό νννκΈ° μν λ°λ³΅μκ° μ겨λ κ²μ΄λ€.
νΉμ§
μ²μλΆν° λκΉμ§ μννλ λͺ©μ μ κ°μ§κ³ μκΈ° λλ¬Έμ backμ΄ λΆκ°λ₯νλ€.
Iteratorμ μ°μ°
- E next() : λ€μ μΈμ€ν΄μ€μ μ°Έμ‘°κ°μ λ°ννλ€.
- boolean hasNext() : next λ©μλ νΈμΆ μ μ°Έμ‘° κ° λ°ν κ°λ₯ μ¬λΆλ₯Ό νμΈν μ μλ€.
- void remove() : next λ©μλ νΈμΆμ ν΅ν΄ λ°ννλ μΈμ€ν΄μ€λ₯Ό μμ ν μ μλ€.
• μλ°©ν₯ λ°λ³΅μ
List<E>λ₯Ό ꡬννλ ν΄λμ€λ§ κ°μ§ μ μλ λ°λ³΅μμ΄λ€.
μλ°©ν₯ λ°λ³΅μμ μ°μ°
- E next() : λ€μ μΈμ€ν΄μ€μ μ°Έμ‘°κ°μ λ°ννλ€.
- boolean hasNext() : next λ©μλ νΈμΆ μ μ°Έμ‘°κ° λ°ν κ°λ₯ μ¬λΆλ₯Ό νμΈν μ μλ€.
- void remove() : next λ©μλ νΈμΆμ ν΅ν΄ λ°ννλ μΈμ€ν΄μ€λ₯Ό μμ ν μ μλ€.
- E previous() : next λ©μλμ κΈ°λ₯μ κ°κ³ λ°©ν₯λ§ λ°λμ΄λ€.
- boolean hasPrevious() : hastNext λ©μλμ κΈ°λ₯μ κ°κ³ λ°©ν₯λ§ λ°λμ΄λ€.
- void add(E e) : μΈμ€ν΄μ€μ μΆκ°μ΄λ€.
- void set(E e) : μΈμ€ν΄μ€μ λ³κ²½μ΄λ€.
컬λ μ λ³ν
• λ°°μ΄λμ ArrayList<E> μ¬μ©μ
List<String> list = Arrays.asList("Toy", "Robot", "Box");
- μ₯μ : μ μ₯κ³Ό μμ κ° λ³νλ©°, Iteratorλ₯Ό μ¬μ©ν μ μλ€.
- λ¨μ : μ μΈκ³Ό λμμ μ΄κΈ°ννλ μ½λκ° λΆκ°νλ€.
- νΉμ§ : λ©λͺ¨λ¦¬κ΅¬μ‘°κ° λ³κ²½λΆκ°λ₯ μΈμ€ν΄μ€μ΄λ€.
-- μλ‘μ΄ μΈμ€ν΄μ€μ μΆκ°, μμ κ° νμν κ²½μ°
public ArrayList(Collection<? extends E> c) {...}
- Collection<E>λ₯Ό ꡬνν 컬λ μ μ μΈμ€ν΄μ€λ₯Ό μΈμλ‘ μ λ¬λ°λλ€.
- Eλ μΈμ€ν΄μ€μ μμ±κ³Όμ μμ κ²°μ λλ―λ‘ λ¬΄μμ΄λ λ μ μλ€.
- 맀κ°λ³μ Cλ‘ μ λ¬λ 컬λ μ μΈμ€ν΄μ€μμλ μ°Έμ‘°(κΊΌλ΄κΈ°λ§) κ°λ₯νλ€.
λκΈ