공부는 인프런 강의 : Do it! C# 프로그래밍 입문(메이커멘토)으로 공부했다.
배열(Array)
여러 값을 저장할 수 있는 자료 구조
배열의 선언
데이터형[ ] 변수명;
int[] intArr; //선언
int[] array1 = new int[3]; //초기화
array1[0] = 10; //값 할당
배열의 인덱스는 0부터 시작한다.
초기화할 때 값할당
int[] array2 = new int[] {1, 2, 3};
int[] array3 = {1, 2, 3};
출력
배열 변수명으로 출력
Console.WriteLine(array1); // 출력결과 : System.Int32[]
이때는 값이 출력되지 않고 배열 자체가 출력이 된다
Console.WriteLine(array1[1]);
값을 출력하려면 이렇게 써야 한다
실습
배열 초기화 후 배열 자체를 출력했다
array1의 값을 출력했다
array1은 초기화만 하고 값을 할당하지 않아서 모두 0이 출력되었다
값을 할당해 주고 다시 출력했다
배열의 값을 for문으로 출력했다
배열의 길이는 배열변수.Length로 확인한다.
배열의 값을 foreach문을 사용해서 출력했다
이때는 배열의 값을 꺼낸 거라 그냥 i로 출력한다
컬렉션(Collection)
여러 데이터 형을 포함해 입력과 출력, 데이터 처리를 수행할 수 있는 자료구조
대표적인 클래스 : ArrayList, Queue, Stack, Hashtable
ArrayList
크기가 가변적이고 데이터형도 여러 가지 섞어서 저장 가능하다
순차적으로 값이 추가되는 건 배열과 동일하다
선언
ArrayList al = new ArrayList();
실습
.Add 로 아이템을 추가하고 .Remove 로 아이템을 삭제한다
출력은 foreach문 사용했다
foreach문에서 꺼낸 데이터형이 다양하기 때문에 임의의 형인 var 키워드를 사용했다
int 타입만 들어있으면 int로 꺼내서 출력해도 문제없다
Queue
선입선출 : 먼저 추가된 거부터 제거가 된다
FIFO(First In First Out)
선언
Queue qu = new Queue();
실습
.Enqueue 인큐로 아이템을 추가하고 .Dequeue 디큐로 아이템을 삭제한다
출력은 while문 사용했다
출력된 순서를 보고 먼저 추가된 1부터 삭제되는 걸 확인할 수 있다
컬렉션의 크기는 컬렉션변수.Count로 확인한다
Stack
후입선출 : 마지막에 추가된 거부터 제거가 된다
LIFO(Last In First Out)
선언
Stack st = new Stack();
실습
.Push로 아이템을 추가하고 .Pop으로 아이템을 삭제한다
큐와 반대로 나중에 추가된 3부터 제거된다
크기는 큐와 마찬가지로 Count를 사용한다
Hashtable
위의 세 가지와 다르게 순서가 없다
Key와 Value로 구성되어 있고 값을 빠르게 저장하고 찾는 게 중요해서 키로 값을 찾는다
선언
HashTable ht = new HashTable();
실습
ht["key"] = "값"; 으로 아이템 추가해 준다
Key인 apple로 찾아서 Value인 사과가 출력된다
참고
- 인프런 : 메이커멘토 - Do it! C# 프로그래밍 입문