ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LinkedList와 ArrayList의 차이
    Java/자바의정석 2023. 2. 27. 15:55
    반응형

    LinkedList와 ArrayList

    [그림1] LinkedList와 ArrayList

    Linked와 Array List들의 구성은 위 그림과 같다. 특징들을 몇가지 정리해보겠다.

     

    AraayList의 장점

    구조가 간단하고 데이터를 읽는데 걸리는 시간이 짧다.
    n번째의 요소의 주소를 찾기 쉽다. int형인 경우 (4) x N(index)를 통해 위치 확인이 가능하다.

    AraayList의 단점

    크기를 변경해야하는 경우 새로운 배열을 생성한 후 데이터를 복사해야한다. (객체주소까지 변경)
    한번 생성한다면 크기 변경이 어렵다.
    크기 변경을 피하기위해 큰 배열을 생성한다면 메모리가 낭비된다.
    비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다.

    특정 index의 값을 삭제한다면 뒤에있는 데이터들이 앞으로 자리를 옮긴다.

    데이터를 추가하거나 삭제하기위해서는 다른 데이터를 옮겨야하기때문에 특정 위치에 추가 삭제는 시간이 오래걸린다.

    하지만 순차적인 데이터추가(끝에추가)와 삭제 (끝부터삭제)의 경우는 데이터 이동이 없기 때문에 속도가 빠르다. 

     

     

     

    LinkedList의 장점

    ArrayLIst의 단점을 보완하기위해 만들어졌다.
    분리 및 데이터 추가에 용이하다. 변경할때 단순히 연결된 참조값만 변경해주면된다.

    LinkedList의 단점

    접근성이 나쁘다(불연속적이기때문)
    다음요소로 이동은 가능하지만 그다음의 요소로 이동이 어렵다 (불연속적이므로 주소가 일정하지 않다)
    한칸씩 이동이 가능하다.

     

     

      ArrayList LinkedList
    읽기 빠름 느림
    추가/삭제 느림 빠름

     전체적인 틀은 이렇다

     

    순차적 삭제는 ArrayLIst가 속도가 빠르며, 중간에 추가 및 삭제 하는 경우는 LinkedList가 빠르다.

     

     

    반응형

    'Java > 자바의정석' 카테고리의 다른 글

    자바 Queue 활용해보기  (0) 2023.02.27
    Stack 활용해보기  (0) 2023.02.27
    Java ArrayList의 개념 및 메서드  (0) 2023.02.27
    Java Collection이란?  (0) 2023.02.27
    Stack, Queue 개념  (0) 2023.02.26

    댓글

Designed by Tistory.