티스토리 뷰

프로그램에서 배열연속된 메모리 공간에 순차적으로 저장된 데이터의 모음입니다. 

이들은 Array, List, ArrayList 라고하는 컬렉션 타입들로,

비슷한 방법으로 사용하지만 각자 고유한 특징이 있습니다. 

1. Array

먼저 Arrray에 대해 집고 넘어가야 하는 것이,

이를 기준으로 다른 타입들의 추가적인 특징이 나타난다고 볼 수 있기 때문입니다.

Array 타입은 선언 시 배열의 크기가 고정됩니다.

 

 

동적으로 크기를 변경할 수는 없고, 필요한 크기의 새 배열을 만들어 새로 할당해서 써야 합니다. 

 


 

또한 int 배열에는 int 값만 저장할 수 있습니다.

이는 데이터 타입을 제한한다고 볼 수 있지만 반환하는 데이터 타입의 안전성을 보장한다고도 볼 수 있습니다.

 

 

int 형의 데이터 크기가 4바이트이므로 주소가 4씩 커지고 있습니다.

저장된 데이터를 연속된 메모리 주소에 저장하는 Array의 장점은

데이터의 접근이 빠르다...! 고 합니다. 

 

 


 

2. List

Array의 불편함은 동적으로 그 크기를 늘리거나 줄여 쓸 수 없다는 점입니다.

이러한 면에서 List의 사용을 고려할 수 있습니다.

리스트의 크기는 가변적입니다.

 

 

실행 결과 intArray[i] = i; 를 처리하는 줄에서 배열 범위를 벗어나 오류가 생겼습니다.

 

 

그에비해 List는 처음에 크기를 정해주지 않았음에도 int 값을 얼마든지 저장하여

마지막엔 6을 출력할 수 있었습니다.

물론 Array는 인덱싱 범위를 넘어가므로 출력에 실패했습니다.

 

 

크기가 자유로운 List 이지만 역시 Array처럼 데이터 타입에는 엄격합니다.

 

 

List의 가장 큰 특징이자 장점은 다양한 메소드를 활용하여 데이터를 관리한다는 것입니다.

 

먼저 List는 Array 처럼 인덱스 번호를 지정하여 값을 저장할 수 있습니다.

List.Add( value ) : 배열의 마지막 자리에 값을 추가합니다. List 배열의 길이가 늘어납니다.

 

List.Remove( value ) : 지정 값을 찾아 배열에서 제거합니다.

해당 위치는 null 값이 되지 않고 다음 값들이 차지하게 됩니다.

 

List.Count() : List 내에 저장된 데이터 개수를 반환합니다.

요소가 null 인 것과 상관없이 배열의 크기를 반환하는 Array. Length와는

 

List.Clear() :  List의 모든 요소를 삭제합니다. = new List<type>() 과 결과가 같습니다. 

 


3. ArrayList


마지막 ArrayList는 List 와 같이 가변적인 크기를 가지면서도

List와는 또 다르게 정해진 데이터 형이 없어 다양한 값을 저장 할 수 있습니다.

이 말은 타입의 안전성을 보장하지 않는 다는 뜻이며,

이 과정에서 박싱이라는 추가 작업이 이뤄져 성능 면에서 뒤쳐진다고 합니다.

 


 

여러모로 실제 사용시 List가 우수하다는 것이 느껴진다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함