컬렉션 : 여러 데이터 형을 포함해 입력과 출력, 데이터 처리를 수행할 수 있는 자료 구조
데이터를 다루기 편리한 구조의 집합
ArrayList,Queue,Stack,Hashtable
ArrayList : 순차적으로 값이 추가됨 가변적임 여러가지 데이터형을 섞어서 저장가능
using System;
using System.Collections; //이 네임스페이스가 있어야 컬렉션 안의 것들을 사용 가능하다.
class MainClass {
public static coid Main (string[] args) {
ArrayList al = new ArryList();
// Add 메소드를 통해 아이템 추가
// array와의 차이점은 데이터 형이 다르더라도 모두 사용가능
al.Add(1);
al.Add("hello");
al.Add(3.3);
al.Add(true);
foreach(var item in al) { //어떤 형태인지 모르기 때문에 var 사용
Console.WriteLine(item); //값을 확인한다
}
Console.WriteLine();
//Remove 메소드를 통해 아이템 삭제
al.Remove("Hello");
foreach(var item in al) { //어떤 형태인지 모르기 때문에 var 사용
Console.WriteLine(item); //제대로 삭제 되었는지 확인한다
}
}
}
Queue : 선입선출 형식으로 값이 먼저 들어온게 먼저 나간다
using System;
using System.Collections; //이 네임스페이스가 있어야 컬렉션 안의 것들을 사용 가능하다.
class MainClass {
public static coid Main (string[] args) {
Queue qu = new Queue();
//Enqueue 메소드를 통해 아이템 추가
qu.Enqueue(1);
qu.Enqueue(2);
qu.Enqueue(3);
//Dequeue 메소드를 통해 아이템을 제거
while (qu,Count >0) {
Console.WriteLine(qu.Dequeue()); // 해당값을 출력하면서 추출해서 제거
}
}
}
Stack : 선입후출 형식으로 제일 나중에 (제일위에 쌓인) 값이 제일 먼저 나간다.
using System;
using System.Collections; //이 네임스페이스가 있어야 컬렉션 안의 것들을 사용 가능하다.
class MainClass {
public static coid Main (string[] args) {
Stack st = new Stack();
//Push 메소드를 통해 아이템 추가
st.Push(1);
st.Push(2);
st.Push(3);
//Pop 메소드를 통해 아이템을 제거
while (st,Count >0) {
Console.WriteLine(st.Pop()); // 해당값을 출력하면서 추출해서 제거
}
}
}
Hashtable : 순서와 상관없이 Key,와 Value 를 사용한다 Key를 통해 해당하는 위치의 Value 값을 가져온다
(사전의 index와 유사함)
using System;
using System.Collections; //이 네임스페이스가 있어야 컬렉션 안의 것들을 사용 가능하다.
class MainClass {
public static coid Main (string[] args) {
Hashtable ht = new Hashtable();
// 키와 값 형태로 Hashtable에 아이템 추가
ht["apple"] = "사과";
ht["pear"] = "배";
ht["banana"] = "바나나";
//Hashtable에 저장된 키에 해당하는 값을 출력
Console.WriteLine(ht["apple"]); //사과가 출력됨
Console.WriteLine(ht["pear"]); //배가 출력됨
Console.WriteLine(ht["banana"]); //바나나가 출력됨
}
}
'c# > c# 기본문법' 카테고리의 다른 글
서버와 네트워크 (0) | 2023.04.15 |
---|---|
c# 예외처리 (0) | 2023.04.13 |
c# 배열 (0) | 2023.04.13 |
c# 클래스의 데이터 전달 (0) | 2023.04.13 |
c#상속,오버라이딩 (0) | 2023.04.13 |