[C#] 데이터 집합을 다루는 컬렉션을 알아보자

2024. 7. 25. 21:29C#

728x90
반응형

 안녕하세요. 진득코딩입니다. 이번 시간에는 많은 데이터들을 다룰 때 편리하게 다룰 수 있는 클래스인 컬렉션에 대해서 살펴보도록 하겠습니다.

컬렉션이란

 컬렉션은 배열과 같이 데이터 집합을 다루는 클래스입니다. 해당 클래스가 있는 네임스페이스는 위와 같이 네 가지가 있는데 그 중에서 이번 시간에는 System과 System.Collections에 있는 클래스들을 살펴보도록 하겠습니다.

어레이

 array는 흔히 알고 있는 배열입니다. 같은 타입의 여러 데이터들을 일렬로 묶어 놓은 것입니다. 위와 같이 ConvertAll을 이용하여 2배로 키운 값을 가지는 string 배열을 만들 수도 있습니다. 이때 string.Join을 이용하여 각각의 값을 ,으로 구분할 수 있습니다.

Stack

 다음으로 살펴볼 컬렉션은 스택입니다. 스택은 System.Collections를 추가해주어야 하는데 WinForm에 기본적으로 추가되어 있으므로 using에는 크게 신경쓰지 않으셔도 됩니다.

 스택은 선입후출이며 push로 삽입하고 pop으로 삭제할 수 있습니다. try-catch를 사용하여 출력을 해보면 underflow가 발생하게 되면 스택이 비어있다는 메세지가 나오게 됩니다.

 위와같이 재귀함수를 switch로 구현하여 스택과 같은 효과를 주는 함수를 만들 수도 있습니다.

Queue

 큐는 선입선출인 컬렉션으로 먼저 들어간 데이터가 먼저 나오는 컬렉션입니다. enqueue를 이용하여 데이터를 삽입하고 dequeue를 사용하여 데이터를 삭제하게 됩니다. 

해시테이블

 해시테이블은 특정 key를 이용하여 value를 바로 찾는 검색같은 컬렉션입니다. 첫 예시로 들어가있는 hashtable[0]은 0번째 인덱스를 뜻하는 것이 아니라 0이라는 key입니다. 0이라는 key로 999라는 데이터를 바로 찾을 수 있습니다. 그렇기 때문에 컬렉션 중에서 가장 빠른 컬렉션입니다.

 위와 같이 각각의 데이터에 key를 설정해주게 되면 key만 알고 있다면 원하는 데이터를 바로바로 찾을 수 있게 됩니다.


 이번 시간에는 많은 데이터를 사용할 때 유용한 컬렉션에 대해서 살펴보았습니다. 특히나 스택은 기본적으로 함수에서 사용되는 컬렉션이므로 알고 있다면 개발하는데 많은 도움이 된다고 생각합니다. 이번 포스팅은 여기까지입니다. 끝까지 봐주셔서 감사합니다.

728x90
반응형
LIST