🚀 Programming/JAVA+Spring

[Java] array, list, 그리고 arraylist

jishushu 2022. 8. 28. 18:33
728x90
반응형

비슷비슷한 용어들 정리하기.

이번에는 array, list, arraylist

우리말로 하면 배열, 리스트, 배열+리스트 정도?

다른 비슷한 용어들이야 사실 역할이나 위치가 달라 실수해도 바로 발견이 되는데

얘들은 실수해도 그냥 넘어갔다가 뒤늦게 발견될 가능성이 있다.

 

먼저 array와 list의 차이를 보면,

array
-초기화할때 사이즈 지정 (사이즈 변경 불가)
-인덱스=고유위치
list
-사이즈를 지정하지 않는다
-저장된만큼이 곧 사이즈


중간에 데이터를 하나 뺐을 경우를 생각해보면 둘의 가장 큰 차이를 알 수 있다.

array ={1,2,3,4}
list={1,2,3,4}

이때, 2를 뺀다

그럼 그 결과는 다음과 같다.



array ={1, ,3,4}
list={1,3,4}


즉 array 는 크기가 정해져있으므로
데이터를 삭제하게되면 그 자리가 빈공간으로 남는다.
반면 list는 한자리씩 땡겨온다.
마찬가지로 데이터를 추가하게 되면
array는 해당자리의 기존값은 사라지고 새로운값이 덮어씌워지지만 list는 그냥 사이에 들어가 추가된다.

그럼 list가 편하지 않나? 싶기도한데 array가 사이즈가 정해져 있으므로 속도가 더 빠르다고 한다.

그럼 arraylist는?
arraylist=array+list
인덱스를 통한 접근도 가능하고 동적으로 추가,삭제가 가능하다.
다만 수정이 있을경우 그 데이터 뒤로 인덱스 모두가 수정되어야 한다는 단점이 있다.

반응형