일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c#기초문법
- unity게임
- c#기본문법
- c#택스트알피지
- 게임만들기
- c#텍스트알피지
- c#
- unity게임만들기
- 유니티공부
- 유니티애니메이터
- Unity
- 유니티투사체
- 코딩
- overridecontroller
- c# c#프로그래머스
- 스파르타
- 스파르타코딩클럽
- c#프로그래머스기초문법
- 시샵
- c#textrpg
- c#코테
- c#고급문법
- 유니티게임만들기
- C#문법
- 유니티애니메이션
- unity공부
- 시샵문법
- c#코딩기초트레이닝
- 유니티
- c#문제
- Today
- Total
나 개발자 진짜 되냐?
[ C# 기본 문법 11 ] 컬렉션 본문
전 시간에 배열을 공부했다.
근데 컬렉션이 뭘까?
싶어서 준비했다.
컬렉션에 대해 공부해 보자.
🌟 컬렉션 🌟
자료를 모아 놓은 데이터의 구조
자료구조!!!
배열이랑은 다른 게 뭘까?
바로 가변적이라는 것..!
정해져 있는 크기가 아니다.
이 친구를 사용하기 위해서는
맨 위에
System.Collections.Generic
라는 네임스페이스를 추가해주어야 한다.
컬렉션은 자료 구조기 때문에
종류가 있다.
함께 하나씩 알아보자!!
✨ 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);
}
add를 통해 하나씩 집어넣어준다.
생성 시 이렇게 나오고
2를 지우니 이렇게 1,3 만 남게 된다.
당연한 거 같지만
자료구조는 이렇게 눈으로 봐야 쉽게 이해가 되더라!
밑에 보면
for문의 친구
foreach문이 나온다.
foreach(int number in numbers)
이 친구는 자료구조, 배열에 함께 쓰는 친구이다.
foreach 문에서도 봤지만
여기서는 length를 쓰지 않는다.
나열되어 있어 보이지만 연결된 친구들이 아니기 때문!
그래서 얘네 하나하나를 count로 부른다!
numbers의 값을 꺼내서 number에 넣겠다는 의미다!
for문으로도 쓸 수 있다.
for ( int i = 0; i <list.count; i++ )
또한 list [i]를 쓰며 인덱싱도 가능하다!
✨ Dictionary ✨
이 친구는 키와 값으로 구성되어 있다.
그래서 키를 가져오면 그에 맞는 값을 출력해 준다.
키는 중복될 수 없겠죠!!
키와 값은 무조건 쌍!
마치 내 집 그리고 내 집열쇠!라고 생각해 주면 편하다.
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);
}
예시문이다.
using System.Collections.Generic;
잊지 말고 꼭 써주자.
Dictionary <string, int> scores = new Dictionary <string, int>();
생성은 < > 꺾새를 활용해서
키값은 string
값은 int로 받아준 모습이다.
foreach(KeyValuePair <string, int> pair in scores)
여기서도 foreach를 사용해서 반복을 돌리고
KeyValuePair를 통해
우리는 키값과 페어인 이라는 함수를 써주고,
아까 리스트와 같은 방법으로 해석하면
scores 안에 있는 값을 변수 pair에게 넣고
돌리겠다는 의미!
✨ Stack ✨
스택은 후입선출( LIFO ) 구조를 가진 자료구조로
나중에 들어온 애가 먼저 나간다 라는 의미이다.
들어올 땐 push를 사용해서 위에 쌓고
내보낼 땐 pop을 통해서 맨 위에 여기서는 4th가 나가게 된다.
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 (마지막에 추가된 요소)
✨ Queue✨
큐! 는 스택이랑 다른 친구이다.
먼저 들어온 애가 먼저 나간다 라는 의미로
1st가 제일 먼저 들어왔으니
제일 먼저 나가게 되는 것이다.
Enqueue로 넣고
뺄 땐 Dequeue를 써준다.
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 (가장 먼저 추가된 요소)
그 이외에 스택이랑 선언하는 방식은 동일하다!
✨ 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);
}
add를 이용해서 추가할 수 있다.
지금까지 컬렉션이라는 친구들을 공부해 보았다.
리스트
딕셔너리
스택
큐
해쉬
이 친구들을 꼭 머리에 넣어서
나중에 알고리즘 짤 때 도움이 되었으면 좋겠다..ㅎㅎ
이만 끝!
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
[ C# 기본 문법 13 ] 구조체 (0) | 2024.09.22 |
---|---|
[ C# 기본 문법 12 ] 메서드 (1) | 2024.09.22 |
[ C# 기본 문법 10 ] 배열 (1) | 2024.09.21 |
[ C# 기본 문법 9 ] 반복문 (0) | 2024.09.21 |
[ C# 기본 문법 8 ] 조건문 (0) | 2024.09.20 |