이전 포스트에서 노드(Node)들의 연결로 이루어진 LinkedList의 구조적 특징을 알아보았다.

🔗 Reference

[Java 기초] 컬렉션 프레임워크 (List, Set): 무한확장

LinkedList는 기본적으로 List 인터페이스를 구현하므로 ArrayList와 사용하는 메서드가 거의 비슷하지만, 양방향으로 데이터를 넣고 뺄 수 있는 Deque의 성질도 가지고 있어서 맨 앞이나 맨 뒤의 데이터를 직접 조작하는 특화된 메서드들을 추가로 제공한다.

1. LinkedList 핵심 기능 요약

LinkedList<String> list = new LinkedList<>(); 가 선언되어 있다고 가정할 때, 가장 자주 쓰이는 메서드들은 다음과 같다.

기능 (Method) 설명 사용 예시 실행 후 리스트 상태 / 반환 결과
add(value) 리스트의 맨 뒤에 데이터를 추가한다. list.add("철수"); ["철수"]
get(index) 특정 인덱스의 데이터를 조회한다. list.get(0); "철수" (반환값)
getFirst() 리스트의 맨 처음 데이터를 조회한다. list.getFirst(); "철수" (반환값)
getLast() 리스트의 맨 마지막 데이터를 조회한다. list.getLast(); "철수" (반환값)
addFirst(value) 리스트의 맨 앞에 데이터를 추가한다. list.addFirst("영희"); ["영희", "철수"]
addLast(value) 리스트의 맨 뒤에 데이터를 추가한다. list.addLast("영철"); ["영희", "철수", "영철"]
clear() 리스트 안의 모든 데이터를 전체 삭제한다. list.clear(); [] (비어있음)

2. 💻 코드로 보는 LinkedList 조작 흐름

```java
import java.util.LinkedList;

public class LinkedListApiEx {
public static void main(String[] args) {

    LinkedList<String> list = new LinkedList<>();
    
    // 1. add(): 기본 추가 (맨 뒤에 들어감)
    list.add("철수");
    System.out.println("add 후: " + list); // [철수]
    
    // 2. addFirst(): 맨 앞에 밀어 넣기 (LinkedList의 특화 기능)
    list.addFirst("영희");
    System.out.println("addFirst 후: " + list); // [영희, 철수]
    
    // 3. addLast(): 맨 뒤에 밀어 넣기
    list.addLast("영철");
    System.out.println("addLast 후: " + list); // [영희, 철수, 영철]
    
    // 4. getFirst() / getLast(): 양 끝단 데이터 즉시 조회
    System.out.println("맨 앞: " + list.getFirst()); // 영희
    System.out.println("맨 뒤: " + list.getLast());  // 영철
    System.out.println("0번 인덱스: " + list.get(0)); // 영희
    
    // 5. clear(): 전체 비우기
    list.clear();
    System.out.println("clear 후: " + list); // []
} }