[TIL][Java][2023-12-01] 컬렉션 List - LinkedList

2023. 12. 1. 17:44TIL/Java

LinkedList

 

LinkedList는 메모리에 남는 공간을 요청해서 여기저기 나누어 실제값을 담아 놓고,

실제값이 있는 주소값으로 목록을 구성하고 저장한다.

 

 

  • 특징
    • 기본적인 기능은 ArrayList와 동일하지만 LinkedList는 값을 나누어 담기 때문에
      모든 값을 조회하는 속도가 느리다. 대신에, 값을 중간에 추가하거나 삭제할 때에는
      속도가 빠르다.
    • 중간에 값을 추가하는 기능이 있다.


  • 기능
    • 선언 : LinkedList<Integer> linkedList 의 형태로 선언한다.
    • 생성 : new LinkedList<Integer>(); 의 형태로 생성한다.
    • 초기화 : 사이즈를 지정하지 않기 때문에 초기화가 필요 없다.
    • 값 추가 : linkedList.add() 의 형태로 값을 추가한다.
    • 값 중간에 추가 : linkedList.add(추가할 순번, 추가할 값) 의 형태로 값을 중간에 추가한다.
    • 값 수정 : linkedList.set(수정할 순번, 수정할 값) 의 형태로 값을 수정한다.
    • 값 삭제 : linkedList.remove(삭제할 순번) 의 형태로 값을 삭제한다.
    • 전체 출력 : linkedList.toString() 의 형태로 전체 값을 대괄호에 묶어서 출력한다.
    • 전체 제거 : linkedList.clear() 의 형태로 전체 값을 삭제한다.

 

 

 

 

// LinkedList 
// (사용하기 위해선 import java.util.LinkedList; 를 추가해야한다.)

import java.util.LinkedList;

public class Main {

	public static void main(String[] args) {
		LinkedList<Integer> linkedList = new LinkedList<>(); // 선언 및 생성

		// 값 추가
        linkedList.add(1);
		linkedList.add(2);
		linkedList.add(3);

		System.out.println(linkedList.get(0)); // 1 출력
		System.out.println(linkedList.get(1)); // 2 출력
		System.out.println(linkedList.get(2)); // 3 출력
		System.out.println(linkedList.toString()); // [1,2,3] 출력 (속도 느림)

		linkedList.add(2, 4); // 2번 순번에 4 값을 추가한다.
		System.out.println(linkedList); // [1,2,4,3] 출력

		linkedList.set(1, 10); // 1번순번의 값을 10으로 수정한다.
		System.out.println(linkedList.get(1)); // 10 출력

		linkedList.remove(1); // 1번순번의 값을 삭제한다.
		System.out.println(linkedList); // [1,4,3] 출력

		linkedList.clear(); // 전체 값을 삭제한다.
		System.out.println(linkedList); // [] 출력
	}
}