무효 클릭 IP 추적 중...
c#

[c#] array vs array list (둘의 차이점과 사용시기)

꼬예 2022. 5. 26.

c#을 처음 공부하면서 둘이 혼용되어 사용된걸 본적은 있는데, 정확한 차이점을 모르다보니 언제 써야 하는지 모르셨던분들은 이번 포스팅을 통해 둘의 차이에 대해 알아보도록 하겠습니다

 

1. Array의 약점?

(배열 선언, 생성이 낯선 분들은 해당 포스팅 참조)

 

(1) 크기 고정

아래와 같이 배열을 정의 해보겠습니다. 

 

그리고 해당 배열에 값을 하나씩 채워넣어 볼건데요.

 

런타임 에러가 발생합니다.

왜냐하면 Array를 생성크기를 정해야만 하는데, 우리가 만든 Array는 2개까지밖에 넣을 수 없습니다. 그런데 3개를 넣으려고 하니 발생하는 에러인거죠.

 

 

(2) 타입(type) 고정

이번에는 "hello"라는 값을 넣고 싶습니다.

그런데 컴파일 에러가 발생하네요.

왜냐하면 우리가 기존 배열 생성시, int타입의 값만 받겠다고 설정했는데, 다른 타입이 들어오려고 하니 발생하는 에러입니다.

 

지금까지 말씀드렸던 Array의 불완전함을 ArrayList를 사용하면 발생하지 않는데요.

 

 

 

2. 유연한 ArrayList

ArrayList생성방법은 위와 같습니다. 

배열과는 조금다르게 타입을 지정하는부분도, 크기를 지정하는 부분도 없네요.

다시 말하면 앞서 Array의 한계였던 부분이 없어진겁니다.

 

자 여기까지 들으신분들은 "이렇게 좋은 ArrayList를 두고 Array를 왜쓰지?" 라는 생각이 드실텐데요.

 

다양한 타입을 넣을 수 있다는것은 내부적으로 박싱, 언박싱을 하고 있다는 말이고,

(박싱,언박싱 관련 포스팅은 해당 포스팅 참조)

 

달리 말하면 성능저하가 발생 된다는 것입니다.

 

만약 여러분이 타입을 하나만 쓰고, 크기가 고정되어있는 배열이 필요하다면, 굳이 ArrayList를 성능을 떨어뜨릴 필요가 없겠죠?

 

 

 

이 글과 읽으면 좋은글

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글