신입 개발자 공부 과정

Dictionary 본문

C#/수업 내용

Dictionary

Lewisjkim 2022. 1. 6. 21:56
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고
using Newtonsoft.Json;//추가

namespace ConsoleApp
{
    class App
    {
        Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();

        public App()
        {
            string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
            Console.WriteLine(json);//파일 내용 출력

            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);//왜 아이템 배열이 들어갔을까? Json형식이 배열이여서

            Console.WriteLine(itemDatas.Length);//3
            
            
            foreach (ItemData itemData in itemDatas)
            {
                Console.WriteLine("{0}-{1}", itemData.id, itemData.name);
                dicItemDatas.Add(itemData.id, itemData);
            }
        }
    }
}

Dictionary

해시 테이블로 구현 되기 때문에 

속도가 빠르다

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class App
    {
        
          
        public App()
        {
            
            Console.WriteLine("hello world \t");

            Dictionary<int, string> dic = new Dictionary<int, string>();
            dic.Add(100, "장검");
            dic.Add(101, "단검");
            dic.Add(102, "활");

            Console.WriteLine(dic[101]);//선택적으로 출력

            foreach(var weapon in dic)//foreach문을 사용하여 순회하며 사전내 모든 내용 출력
            {
                Console.WriteLine("{0}-{1}", weapon.Key, weapon.Value);
            }
        }
    }
}

해시테이블

해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나
해시 테이블이 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문이다

SHA512를 통해 해시값을 찾을 수 있다

https://www.convertstring.com/ko/Hash/SHA512

 

링크드리스트/공부필요

O (1)

 

Json키, 값 쌍으로 이루어진 텍스트 를 사용하는 개방형 표준 포맷

기본 자료형의 수는 다음과 같이 표현된다. C나 자바에서의 8진수와 16진수를 표현하는 방법은 지원되지 않는다.

 

http://jsonviewer.stack.hu/위 링크에서 json 형식을 만들 수 있다

 

------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고

namespace ConsoleApp
{
    class App
    {
        
          
        public App()
        {
            string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
            Console.WriteLine(json);//파일 내용 출력
            
            
        }
    }
}

output=

도구->솔루션용 너겟 패키지에 가서 newtonsoft.Json을 선택하고 App파일을 선택 후 설치하면참조에 추가된다.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;//추가해주고
using Newtonsoft.Json;//추가

namespace ConsoleApp
{
    class App
    {
        Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();

        public App()
        {
            string json = File.ReadAllText("./item.data.json");//app 위치에 저장한 json 파일 경로 추가
            Console.WriteLine(json);//파일 내용 출력

            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);//왜 아이템 배열이 들어갔을까? Json형식이 배열이여서

            Console.WriteLine(itemDatas.Length);//3
            
            
            foreach (ItemData itemData in itemDatas)
            {
                Console.WriteLine("{0}-{1}", itemData.id, itemData.name);
                dicItemDatas.Add(itemData.id, itemData);
            }
        }
    }
}

시리얼라이즈 연습

디시리얼라이즈 연습

연습지수표기법 공부

 

 

'C# > 수업 내용' 카테고리의 다른 글

1/10 - dictionary2 / 디자인 패턴(싱글톤)  (0) 2022.01.10
01/06 과제  (0) 2022.01.07
Delegate 대리자 2 + Lamda 람다  (0) 2022.01.05
Delegate 대리자1  (0) 2022.01.04
1월3일 인벤3  (0) 2022.01.03