어느 기업 면접을 갔을 때 문제지에 나온 문제인데 좀 더 자세히 정리해보고자 포스팅을 한다.
배열(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
'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 |