<aside> 💡 데이터를 찾을 때 0번지부터 순차적으로 찾음

</aside>

<aside> 💡 데이터의 삽입이나 삭제가 빈번하게 발생할 경우 사용하면 좋다.

</aside>

ArrayList의 중간에서 데이터의 삽입이나 삭제가 빈번하게 발생하는 경우, 삽입이나 삭제 위치의 뒤에 있는 원소들을 이동하여야 하기 때문에 문제가 발생할 수 있다.

이 경우 LinkedList를 사용한다.

LinkedList는 각 원소를 링크로 연결한다. 각 원소들은 다음 원소를 가리키는 링크를 저장하고 있다.

연결 리스트에서는 중간에 원소를 삽입하거나 삭제하는 것이 어려운 작업이 아니다. 삽입이나

삭제되는 위치의 바로 앞에 있는 원소의 링크값만을 변경하면 된다.

다만 이작업을 하기 때문에 ArrayList보다 더 느리다.

그러니 위치적인 접근이 많다면 ArrayList가 낫다.

문자열 String를 LinkedList에 저장하기

package ex13;

import java.util.LinkedList;
import java.util.List;

public class LinkedListTest {
    public static void main(String[] args) {
        List<String> list = new LinkedList<>();

        //첫 번째
        list.add("A");
        list.add("B");
        list.add("C");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
        System.out.println();

        //두 번째
        list.add(1, "D"); // 인덱스 1에 "D"를 삽입
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
        System.out.println();

        //세 번째
        list.set(2, "E"); // 인덱스 2의 원소를 "E"로 대체
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
        System.out.println();

        //네 번째
        list.remove(3); // 인덱스 3의 원소를 삭제.
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
    }
}

Untitled