번역

안녕하세요, 미래의 자바 마법사 여러분! 오늘은 자바 LinkedList의 흥미로운 세계로 여행을 떠날 거예요. 프로그래밍에 새로운 사람이라도 걱정 마세요 – 여러분의 친절한 가이드로서 저는 여러분과 함께 단계별로 이 주제를 탐구할 거예요. 이 튜토리얼을 끝내면 여러분은 LinkedList를 전문가처럼 사용할 수 있을 거예요!

Java - LinkedList

자, 파티에서 콩가리 라인을 조직하고 있다고 생각해봐요. 각 사람은 앞에 있는 사람의 어깨를 잡고 체인을 형성해요. 이것이 바로 자바에서 LinkedList의 개념이랍니다 – 요소들이 연결된 체인입니다. 이것은 데이터를 저장하고 관리하는 데 즐거운 및 유연한 방법입니다!

클래스 선언

기본 사항부터 시작해볼게요. 자바에서 LinkedList 클래스는 java.util 패키지의 일부입니다. 이렇게 선언해요:

import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        LinkedList<String> partyGuests = new LinkedList<>();
    }
}

이 예제에서는 partyGuests라는 LinkedList를 만들고, 이는 String(게스트의 이름)을 저장할 거예요. <String> 부분은 "제네릭"이라고 부릅니다 – 이는 우리의 목록이 저장할 요소의 형식을 지정합니다.

매개변수

자바의 LinkedList는 제네릭 클래스로, 다양한 형식의 데이터로 작동할 수 있습니다. 형식 매개변수 <E>는 목록의 요소의 형식을 나타냅니다. 우리의 파티 예제에서는 EString이 될 거예요.

필드

LinkedList는 공개 필드를 가지고 있지 않습니다. 모든 내부 작동은 클래스 내에 캡슐화되어 있습니다. 이는 오브젝트-지향 프로그래밍에서 좋은 관행이랍니다 – 마치 맛있는 음식을 다이닝 룸에서 서빙하면서 깨끗하지 않은 주방을 숨기는 것과 같아요!

클래스 생성자

LinkedList는 두 가지 생성자를 제공합니다:

  1. LinkedList(): 빈 목록을 생성합니다.
  2. LinkedList(Collection<? extends E> c): 지정된 컬렉션의 요소들로 구성된 목록을 생성합니다.

이제 실제로 봅시다:

LinkedList<String> emptyParty = new LinkedList<>(); // 빈 목록
LinkedList<String> vipGuests = new LinkedList<>(Arrays.asList("Alice", "Bob", "Charlie")); // 초기 요소들로 구성된 목록

클래스 메서드

LinkedList는 많은 유용한 메서드를 제공합니다. 여기 몇 가지 일반적으로 사용되는 메서드가 있습니다:

메서드 설명
add(E element) 목록의 끝에 요소를 추가합니다
add(int index, E element) 지정된 위치에 요소를 추가합니다
addFirst(E element) 목록의 시작에 요소를 추가합니다
addLast(E element) 목록의 끝에 요소를 추가합니다
remove(Object o) 지정된 요소의 첫 번째 등장을 제거합니다
remove(int index) 지정된 위치의 요소를 제거합니다
get(int index) 지정된 위치의 요소를 반환합니다
set(int index, E element) 지정된 위치의 요소를 교체합니다
size() 목록의 요소 수를 반환합니다
clear() 목록의 모든 요소를 제거합니다

상속된 메서드

LinkedList는 Collection, Deque, List, AbstractSequentialList과 같은 여러 인터페이스와 클래스에서 메서드를 상속받습니다. 이는 우리가 여기서 다루지 않은 더 많은 작업을 할 수 있다는 것을 의미합니다!

LinkedList에 요소 추가 예제

재미있는 예제로 지식을 실제로 적용해봅시다:

import java.util.LinkedList;

public class PartyPlanner {
    public static void main(String[] args) {
        LinkedList<String> partyGuests = new LinkedList<>();

        // 파티에 게스트 추가
        partyGuests.add("Alice");
        partyGuests.addLast("Bob");
        partyGuests.addFirst("Charlie");
        partyGuests.add(1, "David");

        System.out.println("게스트 명단: " + partyGuests);

        // Bob은 못 올 수 있어요
        partyGuests.remove("Bob");

        // VIP 게스트 추가
        partyGuests.addFirst("Eve");

        System.out.println("업데이트된 게스트 명단: " + partyGuests);
        System.out.println("게스트 수: " + partyGuests.size());
    }
}

출력

이 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:

게스트 명단: [Charlie, David, Alice, Bob]
업데이트된 게스트 명단: [Eve, Charlie, David, Alice]
게스트 수: 4

이제 무엇이 벌어졌는지 분석해봅시다:

  1. 빈 게스트 명단으로 시작했습니다.
  2. Alice를 끝에, Bob를 끝에, Charlie를 시작에, David를 두 번째 위치에 추가했습니다.
  3. 초기 게스트 명단을 출력했습니다.
  4. Bob은 못 올 수 있어서 제거했습니다.
  5. Eve를 VIP 게스트로 시작에 추가했습니다.
  6. 업데이트된 목록과 총 게스트 수를 출력했습니다.

LinkedList가 얼마나 유연한지 보았나요? 어떤 위치에서도 요소를 쉽게 추가하고 제거할 수 있습니다!

결론적으로, LinkedList는 자바에서 강력하고 유연한 도구입니다. 이는 코딩 파티에 마법의 게스트 명단을 가질 것 같아요 – 어떤 위치에서도 게스트를 쉽게 추가하거나 제거할 수 있습니다! 기억해요, 연습이 법이래요, 여러분은 다양한 메서드를 실험하고 자신만의 LinkedList 예제를 만들어 보세요. 코딩 잘하시고, 여러분의 목록이 항상 완벽하게 연결되시길 바랍니다!

Credits: Image by storyset