JAVA/복습

ArrayList

고민말고생각하는사람 2024. 7. 31. 20:59

기본적인 배열을 필드 멤버로 하는 자료구조.

 

특징

배열 길이가 동적으로 변한다.

배열의 한계인 정적 길이를 극복. 

자바에서 배열의 길이는 한 번 정해지면 변하지 않는다. 따라서, 배열에 데이터가 많이 채워졌을 때,

길이를 늘린 배열을 새로 생성하고 기존 값들을 통째로 복사해 넣는 작업을 통해 이를 가능케 했다.

 

배열을 다루는 다양한 편의 기능을 제공한다.

 

빅오 표기법

ArrayList 는 자료를 담는 수단으로, 배열을 사용한다.

따라서, 기본 성능은 배열과 크게 다르지 않다.

 

입력 - O(1)

조회

ㄴ 인덱스를 알 경우 - O(1) 

ㄴ 인덱스를 모를 경우 - O(n)

전체 조회 - O(n)

수정 - O(1)

 

 

추가

처음 - O(n)

중간 - O(n)

끝 - O(1)

삭제 - O(n)

처음 - O(n)

중간 - O(n)

끝 - O(1)


이 외, 큰 배열을 생성해도 다 쓰지 않아 발생하는 메모리 낭비 등의 문제가 있을 수 있음.