Array와 ArrayList의 차이는...

박세건·2023년 10월 25일
1

201 Created(스터디)

목록 보기
1/2

Array와 ArrayList의 차이는 기능적으로 비슷하지만 차이점이 분명하게 존재하기 때문에 그 차이점에 대해서 알아보려고 한다.

가장 큰 차이점을 길이를 조정할 수 있는가

Array는 말 그대로 배열을 뜯한다. c++ 배웠을때에도 배열은 정해진 길이에 값을 채우는 형식으로 사용했었다.
하지만 반대로 ArrayList는 LinkedList를 떠올리면된다.
LinkedList란 가변 길이를 나타낼 수 있다.
Array는 배열을 의미하고 배열이란 값을 추가할때에 정해진 규격을 늘려줘야 추가할 수 있지만
ArrayList는 값을 추가할때 공간을 하나늘려주고 추가하는 형식으로 진행합니다.

저장 가능한 요소가 다르다

또한 Array와 ArrayList는 저장가능한 요소가 다르다.
Array의 경우 int와 double 등 자료형을 넣을 수 있지만
ArrayList의 경우 오직 Object만을 가질 수 있다.
이는 Object에게 상속받는 자료형만 가능하다는 것을 의미한다.

Index 접근법

Array는 값에 접근할때 [
] 기호를 사용해서접근한다.
ArrayList는 get() 이라는 함수를 사용해서 접근 가능하다.

값 추가 방법

Array 값 추가할때 = 연산자를 사용해서 추가 가능하지만
ArrayList는 add(). 메서드를 사용해서 추가해야한다.

profile
멋있는 사람 - 일단 하자

2개의 댓글

comment-user-thumbnail
2023년 10월 26일

안녕하세요, 박세건 님. 팀 201의 민트입니다!
Array와 ArrayList의 차이점에 대해서 잘 정리하셨네요.
201 Created 시리즈까지 만들어주시다니... 감격스럽네요 ㅋㅋㅋ
남겨주신 정리 내용을 바탕으로 몇 가지 내용을 피드백하겠습니다.

… ArrayList는 LinkedList를 떠올리면된다. …
ArrayList는 값을 추가할때 공간을 하나늘려주고 추가하는 형식으로 진행합니다.

ArrayList는 고정적인 크기를 가지지 않고, 크기가 동적으로 늘어날 수 있다는 점을 잘 작성하신 것 같아요.
하지만 여기서 ‘공간을 하나 늘려주고’라는 표현이 모호하더라고요.
결론부터 말씀드리면, ArrayList는 원소를 추가하여 size가 capacity(ArrayList의 크기)와 같아지면 capacity를 (capacity + capacity/2) 만큼의 크기로 늘립니다. 즉, 하나만 늘려주는 것이 아니죠.
잘 정리된 내용이 있어서 블로그 링크 남깁니다.

ArrayList의 경우 오직 Object만을 가질 수 있다.

👍👍👍
한 가지 질문을 더 드리자면, 우리는 어떻게 원하는 타입의 원소를 List에 담을 수 있을까요?
이에 대한 키워드로, 제네릭(Generic)에 대해 학습하시면 좋을 것 같습니다.

세건 님께서 정리하셨듯이, Array와 ArrayList의 차이점은 이렇게도 많습니다.
본래 이번 주차의 머스트두 출제 의도는 ‘ArrayList는 Collection의 API를 사용할 수 있다.’는 것을 인지하는 것이었습니다.
세건 님은 Index 접근법, 값 추가 방법에 대해서도 정리하신 걸 보아, 이에 대해서 충분히 잘 알고 계신 것 같네요 ㅎㅎ

이번 주차 피드백은 이정도로 마무리하겠습니다. 프리코스로 바쁜 와중에도 스터디 활동하느라 고생 많으셨습니다. 남은 프리코스도 파이팅입니다👏

1개의 답글