JAVA/포스팅

자바 컬렉션 프레임워크 LinkedList

짜집퍼박사(짜박) 2023. 11. 18. 00:26

LinkedList는 자바 컬렉션 프레임워크에서 제공하는 양방향 연결 리스트(Double Linked List) 구현체입니다. 다음은 LinkedList의 주요 특징과 사용법에 대한 설명입니다.

 

1. 특징

- 양방향 연결 리스트: 각 요소가 이전 요소와 다음 요소의 참조를 가지고 있는 연결 리스트입니다.
- 빠른 삽입과 삭제: 요소의 추가와 삭제가 빠르게 이루어집니다. 특히 중간에 요소를 삽입하거나 삭제하는 경우 ArrayList보다 유리할 수 있습니다.
- 인덱스로 직접 접근하는 것은 느림: ArrayList와 달리 인덱스로 바로 접근하는 데는 선형 시간이 소요됩니다.
- 확장이 자유로움: 크기를 미리 지정할 필요가 없고, 요소를 계속해서 추가할 수 있습니다.

 

2. 사용법

2.1. 생성과 초기화

// 기본 생성자로 LinkedList 생성
LinkedList<String> linkedList = new LinkedList<>();

// 다른 컬렉션을 이용하여 초기화
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("Apple");
arrayList.add("Banana");
LinkedList<String> fromArrayList = new LinkedList<>(arrayList);

 

2.2. 요소 추가 및 제거

// 요소 추가
linkedList.add("Orange");
linkedList.addFirst("Grapes");
linkedList.addLast("Mango");

// 특정 인덱스에 요소 추가
linkedList.add(2, "Cherry");

// 요소 제거
linkedList.remove("Banana");
linkedList.removeFirst();
linkedList.removeLast();
linkedList.remove(1);

 

2.3. 요소 접근

// 첫 번째 요소 얻기
String firstFruit = linkedList.getFirst();

// 마지막 요소 얻기
String lastFruit = linkedList.getLast();

 

2.4. 리스트 순회

// for-each 루프
for (String item : linkedList) {
    System.out.println(item);
}

// Iterator 사용
Iterator<String> iterator = linkedList.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

 

2.5. 리스트 크기 확인

int size = linkedList.size();
System.out.println("Size of LinkedList: " + size);

 

2.6. 기타 메서드

// 리스트가 비어 있는지 확인
boolean isEmpty = linkedList.isEmpty();

// 리스트에서 특정 요소의 인덱스 찾기
int index = linkedList.indexOf("Orange");

// 리스트 비우기
linkedList.clear();

LinkedList는 다양한 메서드를 통해 요소의 추가, 제거, 검색 등을 편리하게 수행할 수 있습니다. 이외에도 자바 컬렉션 프레임워크에서는 다양한 리스트 구현체를 제공하므로 상황에 맞게 선택하여 사용할 수 있습니다.

 

With ChatGPT