Hoons.Net/C#

캠퍼스 시삽 과제 2-1) 배열과 컬렉션의 차이

Houkibosi 2012. 8. 7. 22:53

배열


 프로그래밍에서 우리는 값을 저장하기 위해 변수를 선언한다.

그리고 이 변수의 데이터타입 별로 저장할 수 있는 변수의 종류가 다르다.

그리고 우리는 사용하면서 동일한 타입의 변수를 두개 이상 연결해서

사용 할 경우가 생긴다.

 이럴 때 쉽게 사용할 수 있는것이 배열이다.

보통 처음 배열을 배우는 사람에게 간단하게 기차라고 설명을 한다.

같은 모양의 열차가 필요한만큼 연결되어 줄줄이 연결되어있는 모양이다.

배열도 같다고 생각한다.

내가 사용하고 싶은 타입의 변수를 단순히 여러개 생성하면

메모리상에 여기저기 흩어져있게 되고, 사용할 떄도 불편하다.

하지만 배열은 메모리상에 연속으로 자리를 잡게 되고

개발자가 사용할 떄도 훨신 편하다.




이런식으로 []안에 호출하고 싶은 배열의 순서를 넣어주만 

해당 부분의 값을 사용 할 수 있고

하나하나 개별로 선언해서 일일이 관리하기보다는

이런 배열을 이용해서 반복문등으로 관리 해주는 것이 훨씬 편하다.



컬렉션


 컬렉션은 배열에서 한차원 업그레이드 된 기능이다.

배열은 숫자 인덱스를 가지고 데이터를 가져오지만

컬렉션은 문자열을 가지고 데이터를 가져 올 수 있다.


이렇게 출력하면 글자를 하나씩 가져와서 출력하는 것을 볼 수 있다.

컬렉션의 유형에는

ArrayList, SortedList, Hashtable, Stack, Queue, NameValueCollection등이 있다.


컬렉션류의 함수들은 데이터의 삽입, 삭제, 검색등 데이터를 메모리상에서

잠시 보관하고 관리하는 역활을 한다.

이런 점은 배열과 비슷하다고 할 수 있다.

하지만 배열과 컬렉션의 차이점은 바로 메모리의 공간이다.

배열은 처음 선언시 만들어진 정적인 공간을 해제할 때 까지 계속 사용한다.

하지만 컬렉션은 메모리를 동적 확장하며 사용할 수 있다.

그리고 동적생성된 컬렌션을 정적인 배열로 변환하는 함수를

포함하고 있어 손 쉽에 전환이 가능하다.



C언어를 배울 당시 배열이 더 쉽기떄문에

배열을 배웠었고, 아직까지도 배열을 주로 사용했다.

하지만 객체지향으로 넘어오면서 컬렉션이란 것이 생겼고

배열의 확장된 개념이므로 배열을 다룰 줄 안다면

금방 사용할 수 있을 거라 생각한다,

물론 메모리공간의 효율성이나 여러이유로 배열을 사용할 수 있겠지만

앞으로 효율적이고 빠른 개발을 생각한다면 컬렉션을 조금 더 연습해서

컬렉션을 주로 사용해야겠다.