[JAVA]자바 자료형(ArrayList, LinkedList)

Intro

정보처리기사 실기에서 나온 자바 자료형 중에서 몰랐던 내용들을 정리한다.

ArrayList

ArrayList란, List의 자식 클래스로 크기가 가변적으로 변하는 선형리스트의 성질을 갖고 있는 자료형이다.

ArrayList 특징

  • 크기를 지정하지 않고도 동적으로 값을 삽입하고 삭제할 수 있다.
  • 인덱스로 데이터에 접근이 가능.
  • 삽입 및 삭제에는 비효율적이다.
    • 예를 들어, 데이터가 5개 있는 경우 맨 앞 2개를 삭제 했을 때 나머지의 데이터를 앞으로 한칸씩 이동해야 하기에 때문이다.

LinkedList

LinkedList란, List의 자식클래스로 ArrayList와 달리 각 원소마다 앞, 뒤 원소의 위치값을 갖고 있다. 이는 조회, 삽입, 삭제 시 성능의 차이를 발생시킨다.

LinkedList 특징

  • LinkedList는 내부적으로 양방향의 연결 리스트로 구성되어 있어 참조하려는 원소에 따라 처음부터 정방향 또는 역순으로 순회가 가능하다.
  • 순차적 접근이기에 검색의 속도가 느리다.
  • 데이터를 추가 및 삭제할 경우 가리키고 있는 주솟값만 변경해주면 되기에 효율적임.
    • 2번째 값 삭제 시 1번 노드가 3번을 가리키기만 하면 된다.