반응형
LinkedList
LinkedList 컬렉션 클래스는 데이터를 효율적으로 추가, 삭제, 변경 등의 동작을 하기 위해 사용한다.
LinkedList는 ArrayList와는 다르게 불연속적으로 존재하며, 데이터들은 서로 연결되어 있다.
그림과 같이 LinkedList의 각 요소(node)들은 자신과 연결된 이전 요소 또는 다음 요소의 주소 값과 데이터로 구성되어 있다.
LinkedList에서 데이터 삭제는 삭제하고자 하는 노드의 이전 노드가 삭제하고자 하는 노드의 다음 노드를 참조하도록 변경하는 것으로 삭제한다. 즉, 연결된 링크를 끊어 다른 노드에 다시 연결하는 방식이다.
LinkedList는 배열과 같이 데이터를 이동하기 위해 복사할 필요가 없어 처리 속도가 훨씬 빠르다.
LinkedList에서의 데이터 추가는 새로운 노드를 추가하고자 하는 위치의 이전 노드와 다음 노드 사이에 연결하는 것으로 이루어진다.
import java.util.LinkedList;
import java.util.List;
public class LinkedListEx {
public static void main(String[] args) {
// LinkedList 생성
List<String> list = new LinkedList<String>();
// String 타입의 데이터를 LinkedList에 추가
list.add("Hello");
list.add("Java");
list.add("List");
// 저장된 객체 수 얻기
int size = list.size();
// 0번 인덱스의 객체 저장 및 출력
String hello = list.get(0);
System.out.println(hello);
// 저장된 총 객체 수 만큼 조회
for(int i = 0; i < size; i++) {
String str = list.get(i);
System.out.println(str);
}
// 0번 인덱스에 저장된 객체 삭제
list.remove(0);
// for-each문으로도 사용 가능
for (String str : list) {
System.out.println(str);
}
}
}
반응형
'언어(Language) > Java' 카테고리의 다른 글
[Java] 자바 Iterator 개념 정리 및 활용 (0) | 2022.09.22 |
---|---|
[Java] 자바 ArrayList와 LinkedList의 차이 (어레이 리스트와 링크드 리스트의 차이) (0) | 2022.09.21 |
[Java] 자바 ArrayList 클래스 개념 정리 및 활용 (1) | 2022.09.21 |
[Java] 자바 List<E> 컬렉션 인터페이스 정리 (0) | 2022.09.21 |
[Java] 자바 컬렉션 프레임워크 개념 정리 (Collection Framework) (1) | 2022.09.21 |