[Java] 배열과 링크드리스트의 차이

19·2022년 9월 5일
0

Java

목록 보기
4/13

배열 (ArrayList)

장점

  • 구조가 간단하고 데이터를 읽는데 걸리는 시간이 짧다.

단점

  • 크기를 변경할 수 없다
    • 크기를 변경하기 위해선 새로운 배열을 생성 후, 데이터를 복사하는 과정을 거쳐야 함
      1. 더 큰 크기의 배열을 생성한다.
      2. 기존 배열을 생성한 배열에 복사한다.
      3. 기존 배열을 가리키던 변수의 참조를 변경한다. (새로 생성한 배열로)
    • 이를 피하기 위해 큰 배열을 생성하면, 메모리가 낭비됨
  • 비순차적(중간)인 데이터의 추가, 삭제에 시간이 많이 걸린다
    • 자리이동을 해야하기 때문
    • 순차적인 데이터 추가/삭제는 빠름

링크드리스트 (LinkedList)

배열의 단점을 보완하기 위해 등장

장점

  • 비순차적인 데이터의 추가, 삭제에 유리하다
    • 참조변경만으로 가능

단점

  • 데이터 접근성이 좋지 않다 (배열처럼 바로 접근 불가)

ArrayList vs LinkedList
1. 순차적으로 데이터 추가/삭제 -> ArrayList가 빠름
2. 비순차적으로 데이터 추가/삭제 - > LinkedList가 빠름
3. 접근시간 -> ArrayList가 빠름

profile
하나씩 차근차근

0개의 댓글