C#

C# 콜렉션

작성자 정보

  • 마스터 작성
  • 작성일

컨텐츠 정보

본문

C#에서 콜렉션은 배열과 다르게 가변적으로 사용이 가능합니다.

 

콜렉션은 배영과 비슷한 자료 구조를 가지고 있습니다.

 

 using System.Collections.Generic을 사용해야 합니다.

 

1.List

리스트는 가변적 크기를 가지는 배열이다.

List<int> numbers = new List<int>(); // 빈 리스트 생성

numbers.Add(1); // 리스트에 데이터 추가 

numbers.Add(2); 

numbers.Add(3); 

numbers.Remove(2); // 리스트에서 데이터 삭제 

 

foreach(int number in numbers) // 리스트 데이터 출력 

 Console.WriteLine(number); 

}


 

2.Dictionary

딕셔너리는 key와 value로 구성되어 있다.

딕셔너리는 중복된 값을 가질 수 없다.


using System.Collections.Generic;


Dictionary<string, int> scores = new Dictionary<string, int>(); // 빈 딕셔너리 생성

scores.Add("Alice", 100); // 딕셔너리에 데이터 추가

scores.Add("Bob", 80);

scores.Add("Charlie", 90);

scores.Remove("Bob"); // 딕셔너리에서 데이터 삭제


foreach(KeyValuePair<string, int> pair in scores) // 딕셔너리 데이터 출력

{

    Console.WriteLine(pair.Key + ": " + pair.Value);

}

 

3.Stack 

스택은 LIFO 구조를 가진 자료 구조입니다.  

후입 선출입니다. 마지막에 들어온 데이터 부터 나갑니다.

데이터는 뒤에 쌓이고 탐색시 마지막 추가된 요소를 가져옵니다.

Stack<int> stack1 = new Stack<int>();  // int형 Stack 선언


// Stack에 요소 추가

stack1.Push(1);

stack1.Push(2);

stack1.Push(3);


// Stack에서 요소 가져오기

int value = stack1.Pop(); // value = 3 (마지막에 추가된 요소)


 

4. Queue

큐는 FIFO구조를 가진 자료 구조입니다.

선입선출로 처음 들어간 데이터 부터 출력됩니다.

은행 대기 번효표 생각하시면 편합니다.

Queue<int> queue1 = new Queue<int>(); // int형 Queue 선언


// Queue에 요소 추가

queue1.Enqueue(1);

queue1.Enqueue(2);

queue1.Enqueue(3);


// Queue에서 요소 가져오기

int value = queue1.Dequeue(); // value = 1 (가장 먼저 추가된 요소)

 

 

5.HashSet

해시셋은 중복되지 않은 요소들로 이루어진 집합입니다.

 

HashSet<int> set1 = new HashSet<int>();  // int형 HashSet 선언


// HashSet에 요소 추가

set1.Add(1);

set1.Add(2);

set1.Add(3);


// HashSet에서 요소 가져오기

foreach (int element in set1)

{

    Console.WriteLine(element);

}

 

 

배열과 리스트의 차이

0.배열은 정적 리스트는 동적

1.리스트는 배열보다 많은 메모리를 사용합니다. 리스트를 무분별하게 사용하면 성능저하의 원인이 됩니다.

2.데이터 접근 시간 증가. 배열과 달리 리스트는 데이터 접근 속도가 배열보다 느립니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

최근글


새댓글


알림 0