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
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 Queue (0) | 2023.11.18 |
---|---|
자바 컬렉션 프레임워크 Stack (0) | 2023.11.18 |
자바 컬렉션 프레임워크 ArrayList (0) | 2023.11.18 |
자바 컬렉션 프레임워크 (0) | 2023.11.18 |
java.time 패키지의 TemporalAccessor 인터페이스 (0) | 2023.11.17 |