본문 바로가기

Java

Array vs List

Array

  • 같은 자료형을 가진 변수를 하나로 표현한 것. 원시타입과 객체 모두 가질 수 있다.
  • 연속된 메모리 공간이다. 그래서 각 데이터가 줄줄이 저장될 것이기 때문에 자료형을 미리 적어주어야 한다.
  • 인덱스는 값에 대한 유일무이한 식별자
  • 크기가 불변적
  • 장점: 인덱스를 활용하여 빠르게 조회 가능
  • 단점: 엘리먼트가 삭제되어도 빈 자리가 남는다. => 불필요한 메모리 차지

 

 

List

  • 순서가 있는 데이터들의 모임
  • 크기가 가변적
  • Array의 단점을 보완한다. 불연속적인 메모리 공간 차지
  • 리스트에서 인덱스는 몇 번째 데이터인가 정도의 의미
  • ArrayList와 LinkedList가 있다.

ArrayList

  • Array List는 배열을 이용해서 리스트를 구현한 것
  • 데이터의 추가 => Array List는 내부적으로 데이터를 배열에 저장한다. 배열의 특성상 데이터를 리스트의 처음이나 중간에 저장하면, 이후의 데이터들이 한칸씩 뒤로 물러나야한다.
  • 데이터의 삭제 => 삭제도 추가와 유사하게 빈자리가 생기면 빈자리를 채우기 위해서 순차적으로 한칸씩 땡겨야 한다.
  • 데이터 조회(가져오기) =>인덱스를 이용하여 데이터를 가져오고 싶을 때 Array로 구현한 리스트는 속도가 매우 빠르다. (메모리 상의 주소를 정확하게 참고해서 가져오기 때문이다.)

장점 : 내부적으로 배열을 사용하기 때문에 인덱스를 이용해서 접근하는 것이 빠르다.

단점 : 데이터의 추가와 삭제가 느리다.

 

LinkedList

데이터의 추가/삭제가 빈번할 때

'Java' 카테고리의 다른 글

IO  (0) 2020.01.31
Map 인터페이스  (0) 2020.01.15
Collection Framework  (0) 2020.01.15
다형성  (0) 2020.01.15
배열 정렬  (0) 2020.01.15