728x90
- 해쉬테이블(Hashtable)
- Key 값을 Hash 함수에 넣어 코드값으로 변경한 후 Bucket이라는 저장 공간에 인덱스 번호를 매핑하여 데이터를 저장 하는 것
- Hash Collision 발생 시(값끼리 충돌) Seperate chaining(Liked List로 노드 연결)으로 해결, Open addressing(빈 버킷 사
용)
- .Net의 HashTable과 Dictionary<T>의 특징
- 키를 가지고 빠르게 값에 접근하기에 좋다
- 순서나 중복되는 데이터가 있는 경우에는 맞지 않다
- 미리 저장공간을 확보하기 때문에 메모리 효율이 좋지 않다
- 일반적으로 Dictionary를 더 많이 사용한다.(제네릭)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hashtable_dictionary
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hashtable & Dictionary");
Hashtable hash = new Hashtable();
hash.Add(0, "정현");
hash.Add(1, "패스트캠퍼스");
hash.Add(2, "c#");
hash.Add(3, "자료구조");
Console.WriteLine(hash[1]);
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("정현", "010-0000-0001");
dic.Add("패캠", "010-0000-0002");
dic.Add("c#", "010-0000-0003");
if (!dic.ContainsKey("용희"))
{
dic.Add("용희", "010-2222-3333");
}
dic.Remove("c#");
foreach (var item in dic.Keys)
{
Console.WriteLine(item + " : " + dic[item]);
}
}
}
}
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 정렬 알고리즘 - 선택정렬(Selection sort) (0) | 2021.12.27 |
---|---|
C# 알고리즘 - 재귀호출(Recursive Call) (0) | 2021.12.27 |
C# 선형 자료구조 - 큐(Queue) (0) | 2021.12.26 |
C# 선형 자료구조 - 스택(Stack) (0) | 2021.12.26 |
C# 선형 자료구조 - 연결리스트(LinkedList) (0) | 2021.12.25 |