번역
안녕하세요, 미래의 자바 마법사 여러분! 오늘은 자바 LinkedList의 흥미로운 세계로 여행을 떠날 거예요. 프로그래밍에 새로운 사람이라도 걱정 마세요 – 여러분의 친절한 가이드로서 저는 여러분과 함께 단계별로 이 주제를 탐구할 거예요. 이 튜토리얼을 끝내면 여러분은 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>
는 목록의 요소의 형식을 나타냅니다. 우리의 파티 예제에서는 E
는 String
이 될 거예요.
필드
LinkedList는 공개 필드를 가지고 있지 않습니다. 모든 내부 작동은 클래스 내에 캡슐화되어 있습니다. 이는 오브젝트-지향 프로그래밍에서 좋은 관행이랍니다 – 마치 맛있는 음식을 다이닝 룸에서 서빙하면서 깨끗하지 않은 주방을 숨기는 것과 같아요!
클래스 생성자
LinkedList는 두 가지 생성자를 제공합니다:
-
LinkedList()
: 빈 목록을 생성합니다. -
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
이제 무엇이 벌어졌는지 분석해봅시다:
- 빈 게스트 명단으로 시작했습니다.
- Alice를 끝에, Bob를 끝에, Charlie를 시작에, David를 두 번째 위치에 추가했습니다.
- 초기 게스트 명단을 출력했습니다.
- Bob은 못 올 수 있어서 제거했습니다.
- Eve를 VIP 게스트로 시작에 추가했습니다.
- 업데이트된 목록과 총 게스트 수를 출력했습니다.
LinkedList가 얼마나 유연한지 보았나요? 어떤 위치에서도 요소를 쉽게 추가하고 제거할 수 있습니다!
결론적으로, LinkedList는 자바에서 강력하고 유연한 도구입니다. 이는 코딩 파티에 마법의 게스트 명단을 가질 것 같아요 – 어떤 위치에서도 게스트를 쉽게 추가하거나 제거할 수 있습니다! 기억해요, 연습이 법이래요, 여러분은 다양한 메서드를 실험하고 자신만의 LinkedList 예제를 만들어 보세요. 코딩 잘하시고, 여러분의 목록이 항상 완벽하게 연결되시길 바랍니다!
Credits: Image by storyset