Study/Java

[자료구조] 배열과 리스트의 차이

토기발 2022. 10. 7. 23:10

어느 기업 면접을 갔을 때 문제지에 나온 문제인데 좀 더 자세히 정리해보고자 포스팅을 한다.

 

 

배열(Array)과 리스트(List) 모두

여러 개의 데이터를 하나의 이름으로 그룹핑해서 관리하기 위한 자료구조이다.

 

그렇다면 무슨 차이가 있을까?

 

 

배열(Array)

  • 값에 대한 유일무이한 식별자(index)가 존재한다.
  • 정해진 공간이 있고 크기가 고정되어 있기에 어떤 엘리먼트가 삭제되면 빈 공간으로 남겨야 한다.->메모리 낭비
  • 논리적 저장 순서와 물리적 저장 순서가 일치 -> index로 해당 원소에 빠르게 접근할 수 있다.
  • 객체생성시 크기 할당이 필수이다.(ex: int[] arr = new int[3];)
  • 삽입/삭제는 느리지만 데이터 조회는 빠르다.
  • 크기를 구할 때 length 를 사용한다.

 

리스트(List)

  • 리스트에서 인덱스는 몇 번째 데이터인가 정도의 의미를 가진다. (순서)
  • 정해진 공간이 없고, 빈 공간을 허용하지 않는다.
  • 순차성을 보장하지 않는다.
  • 객체 생성시 크기 할당이 필요 없다.
  • 삽입/삭제는 빠르지만 데이터 조회는 느리다.
  • 크기를 구할 때 size() 를 사용한다.

 

출처: 생활코딩

위는 배열, 아래는 리스트이다.

배열은 빈 곳을 남기고 새로 추가되지만, 리스트는 빈 공간을 남기지 않고 비었던 자리에 새로 추가된다.

 

 

Array와 ArrayList는 무슨 차이가 있을까?

 

ArrayList

  • 초기화시 사이즈를 표기하지 않는다. (사이즈가 동적이다.)
  • 데이터 추가 삭제시 메모리를 재할당하기 때문에 속도가 Array보다 느리다.
  • 크기를 구할 때 size() 를 사용한다.

 

 

 

참고출처: 

 

https://suzyalrahala.tistory.com/24

https://velog.io/@adam2/Array%EC%99%80-List%EA%B7%B8%EB%A6%AC%EA%B3%A0-Java-List

https://opentutorials.org/module/1335/8677

'Study > Java' 카테고리의 다른 글

[JAVA] 클래스 변수, 인스턴스 변수, 지역 변수  (0) 2022.10.12
[JAVA] 생성자  (0) 2022.10.10
SQL관련 용어 정리  (0) 2022.04.18
용어 정리(UDP관련)  (0) 2022.04.13
자바 입출력  (0) 2022.04.08