본문 바로가기

카테고리 없음

자바 LinkedList: 사용법과 예제를 총정리한 한글 가이드!

1. LinkedList란?

LinkedList는 자바의 자료구조 중 하나로, 데이터를 연결된 노드 형태로 저장하는 방식을 말합니다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어 있습니다. 이러한 구조로 인해 데이터의 삽입, 삭제, 검색이 유연하게 이루어질 수 있습니다. LinkedList는 ArrayList와 달리 인덱스가 없으며, 특정 위치에 바로 접근하는 기능이 없습니다.

2. LinkedList의 특징

  • 삽입과 삭제가 용이: LinkedList는 데이터를 노드에 저장하고, 노드들이 포인터로 연결되어 있기 때문에 데이터의 삽입과 삭제가 빠르게 이루어집니다. 중간에 새로운 데이터를 삽입하거나 삭제할 때, 단지 포인터만 변경하면 되기 때문에 다른 요소들에게 영향을 주지 않습니다.

  • 유동적인 크기: LinkedList는 노드들이 포인터로 연결되어 있고, 인덱스가 없기 때문에 크기에 제한이 없습니다. 데이터의 삽입이나 삭제에 따라 리스트의 크기가 동적으로 조절될 수 있습니다.

  • 순차적 접근 속도: LinkedList는 특정 위치에 바로 접근할 수 없기 때문에, 데이터에 순차적으로 접근하는 것이 가장 효율적입니다. 따라서 데이터 조회와 검색이 ArrayList보다 느릴 수 있습니다.

  • 메모리 공간의 오버헤드: LinkedList는 데이터와 포인터로 구성된 노드들로 이루어져 있기 때문에, 메모리 공간의 오버헤드가 발생할 수 있습니다. 각 노드마다 다음 노드를 가리키는 포인터가 필요하기 때문에, 데이터의 크기보다 더 많은 메모리를 차지할 수 있습니다.

    3. LinkedList 사용법

1) LinkedList 객체 생성

LinkedList 객체를 생성하기 위해서는 LinkedList 클래스의 생성자를 호출해야 합니다. 아래는 LinkedList 객체를 생성하는 예시 코드입니다.

LinkedList<String> linkedList = new LinkedList<>();

2) 데이터 삽입

LinkedList에 데이터를 삽입할 때는 add() 메소드를 사용합니다. 데이터를 맨 뒤에 추가하려면 add() 메소드만 사용하면 되고, 특정 위치에 데이터를 삽입하려면 add() 메소드의 첫 번째 인자로 인덱스를 지정해야 합니다.

// 맨 뒤에 데이터 추가
linkedList.add("Apple");
linkedList.add("Banana");
linkedList.add("Cherry");

// 특정 위치에 데이터 삽입
linkedList.add(1, "Grape");

3) 데이터 접근

LinkedList는 인덱스가 없기 때문에 데이터에 접근하기 위해서는 반복문을 사용하여 순차적으로 접근해야 합니다. 아래는 LinkedList의 데이터를 반복문을 사용하여 접근하는 예시 코드입니다.

for (String data : linkedList) {
    System.out.println(data);
}

4) 데이터 삭제

LinkedList에서 데이터를 삭제하려면 remove() 메소드를 사용합니다. 특정 위치의 데이터를 삭제하려면 remove() 메소드의 인자로 인덱스를 지정하면 됩니다.

// 맨 뒤의 데이터 삭제
linkedList.remove();
// 특정 위치의 데이터 삭제
linkedList.remove(1);

5) 데이터 검색

LinkedList에서 데이터를 검색하려면 contains() 메소드를 사용할 수 있습니다. 해당 메소드는 지정한 객체가 LinkedList에 포함되어 있는지 여부를 확인하여 true 또는 false를 반환합니다.

boolean isContain = linkedList.contains("Apple");
System.out.println("Contains Apple? " + isContain);

위 코드는 해당 LinkedList에 "Apple" 문자열이 포함되어 있는지 확인합니다.


LinkedList는 데이터의 삽입과 삭제가 용이하며, 유동적인 크기 조절이 가능한 자료구조입니다. 하지만 데이터의 검색 및 접근 속도가 순차적으로 이루어지기 때문에, 데이터의 조회가 많이 필요한 경우에는 ArrayList를 사용하는 것이 성능상 유리합니다.

LinkedList 사용법

LinkedList는 데이터를 노드로 관리하는 자료구조로, 데이터의 삽입과 삭제가 용이하며 유동적인 크기를 가지는 특징이 있습니다. 이번 섹션에서는 LinkedList를 사용하는 방법에 대해 알아보도록 하겠습니다.

1) LinkedList 객체 생성

LinkedList 객체를 생성하기 위해서는 LinkedList 클래스의 생성자를 호출해야 합니다.

LinkedList<String> linkedList = new LinkedList<>();

2) 데이터 삽입

LinkedList에 데이터를 삽입할 때는 add() 메소드를 사용합니다. 데이터를 맨 뒤에 추가하려면 add() 메소드만 사용하면 되고, 특정 위치에 데이터를 삽입하려면 add() 메소드의 첫 번째 인자로 인덱스를 지정해야 합니다.

// 맨 뒤에 데이터 추가
linkedList.add("Apple");
linkedList.add("Banana");
linkedList.add("Cherry");

// 특정 위치에 데이터 삽입
linkedList.add(1, "Grape");

3) 데이터 접근

LinkedList는 인덱스가 없기 때문에 데이터에 접근하기 위해서는 반복문을 사용하여 순차적으로 접근해야 합니다.

for (String data : linkedList) {
    System.out.println(data);
}

4) 데이터 삭제

LinkedList에서 데이터를 삭제하려면 remove() 메소드를 사용합니다. 특정 위치의 데이터를 삭제하려면 remove() 메소드의 인자로 인덱스를 지정하면 됩니다.

// 맨 뒤의 데이터 삭제
linkedList.remove();
// 특정 위치의 데이터 삭제
linkedList.remove(1);

5) 데이터 검색

LinkedList에서 데이터를 검색하려면 contains() 메소드를 사용할 수 있습니다. 해당 메소드는 지정한 객체가 LinkedList에 포함되어 있는지 여부를 확인하여 true 또는 false를 반환합니다.

boolean isContain = linkedList.contains("Apple");
System.out.println("Contains Apple? " + isContain);

LinkedList는 데이터의 삽입과 삭제가 용이하며, 유동적인 크기 조절이 가능한 자료구조입니다. 하지만 데이터의 검색 및 접근 속도가 순차적으로 이루어지기 때문에, 데이터의 조회가 많이 필요한 경우에는 ArrayList를 사용하는 것이 성능상 유리합니다.