์ธ๋ฒคํ ๋ฆฌ๋ฅผ ๋์ ๋๋ฆฌ๋ก ๋ง๋๋ ์ค์ธ๋ฐ ๋ฌผ์ฝ์ด๋ ๊ธฐํ ํ์คํธ์ฉ ์์ดํ ๋ค์ ์์ดํ ์ ํค๊ฐ์ผ๋ก ๋์ ๋๋ฆฌ์ ์ด๋ฏธ ์์ผ๋ฉด ๊ฐ์๋ง ์ฌ๋ ค์ฃผ๊ฒ ํ์
๊ทผ๋ฐ ๋ณดํต ์ฅ๋นํ ๋ค์ ํ ์ฌ๋กฏ์ ํ๋์ฉ๋ง ๋ค๊ฐ๊ฒ ๋๋๋ฐ ๋์ ๋๋ฆฌ์ ID๊ฐ์ ํค๊ฐ์ผ๋ก ๋ฃ์๋ ๊ฐ์ ํ ๋ค์ ์ด๋ฏธ ์์ผ๋ฉด ์ถ๊ฐ๊ฐ ์๋๋๋ฐ ์ด๋ป๊ฒ ํด๊ฒฐํ๋ฉด ์ข์??
๊ฑ ์ฅ๋นํ ๋ค๋ง Iist์ ๋ด์์ผ ํ๋;;;; ๊ณ ์๋๋ค ๋์์ฃผ์ธ์.
์์ดํ ์ฝ๋๋ฅผ ํค๊ฐ์ผ๋ก ํด์ dic ๋ก ํ๋๊ฒ ์์ฒด์ ๋ฌธ์ ๊ฐ ์๋๊ฒ ์๋?
๊ทธ๋ผ ์ด๋ป๊ฒ ๋ฐ๊ฟ์ผ ์ข์๊น์??
๊ทธ๊ฒ ์ ๋ฌธ์ ?
public class Item
public class Item { public int id; public string desc; public int count; } ์ด๋ฐ์์ ์์ดํ ํด๋์ค ๋ง๋ค๊ณ ์์ด๋๊ฐ์ด ์์ผ๋ฉด ์ฌ๋กฏ์ ์ด๋ฏธ์ง ์๋ก ์ถ๊ฐ ์์ผ๋ฉด ๊ฐ์๋ง ์ฌ๋ ค์ฃผ๋ ์์ผ๋ก ํ๋๋ฐ... ๋ฌธ์ ์๋๊ฑด๊ฐ์ฌ?
์ธ๋ฒคํ ๋ฆฌ ํ์นธ์ ๋์ ๋๋ฆฌ๋ก ๊ตฌํํ๊ฑฐ๋ผ๊ณ ์๊ฐ ํ๋๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด ๊ธ์ ์๋๊ฒ์ฒ๋ผ ๊ฐ์ id ๊ฐ์ ๊ฐ์ง ์ฅ๋น๋ ์ธ๋ฒคํ ๋ฆฌ์ ๋ฃ์์๊ฐ ์๊ฒ๋์์
key ๊ฐ์ด ์์ดํ id๊ฐ ์๋๋ผ ๊ฐ์ ์ข ๋ฅ ์์ดํ ์ด์ด๋ ๊ฐ์ด ๋ค๋ฅธ ์ ๋ํฌ ํค๊ฐ์ด๋ผ๋๊ฐ ์๋๋ฉด ๋ฆฌ์คํธ๋ ๋ฐฐ์ด๋ก ๊ตฌํ ํด์ผ ๋ง๋ค๊ณ ๋ด
๊ฒฐ๋ก ์ ๋๊ฐ ์๋ชป ์ดํดํด์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํ๊ฑฐ๋ค ์ด๊ฑฐ์?
๋์ผ ์ฅ๋น๋ฅผ ์ธ๋ฒคํ ๋ฆฌ์ ๋ฃ๋ ๋ฐฉ์์ด ๊ฐ๋ฅํ๋ ค๋ฉด dic ๋ณด๋จ list, ๋ฐฐ์ด์ด ๋ง์ ๋ณด์ธ๋ค๋๊ฑฐ์ง
๊ฐ์ ์ฅ๋น๋ ๊ทธ๋ฅ ๊ฐ์๋ง ๋๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ํ ๊ฑฐ๋ฉด ์๊ด ์๊ฒ ์ง๋ง
์ ๋ํฌ ํค๊ฐ๊ฐ์๊ฑด ๊ทธ๋ผ ์์ฑ๋ ๋ ๊ฐ ์์ดํ ๋ง๋ค ๋ฌ๋ผ์ง๊ฒ ์ง๋ฉด ๋๋์?
๊ฐ์ ์ฅ๋น๋ ํค๊ฐ์ด ๋ค๋ฅด๋ฉด ๋์ ๋๋ฆฌ์ ๋ค๋ฅธ ์ฌ๋กฏ์ ๋ฃ์ด ์ง๋๊น ๋ฌธ์ ์์๊ฒ ๊ฐ์
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋ฐ์ดํฐ ๋งค๋์ ์๋ฐ์ดํฐ ๋งค๋์ ์ ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ๊ฐ ์ฌ๋ฌ ์์ดํ ๋ค ์ ๋ณด๋ฅผ ๋ค ๊ฐ์ง๊ณ ์๊ณ ์์ดํ ์ด ์์ฑ๋ ๋ ์ด๊ธฐํ ํจ์์์ id๊ฐ์ ํค๊ฐ์ผ๋ก ๋ฐ์ดํฐ ๋งค๋์ ์ ๋์ ๋๋ฆฌ์์ ๊ฐ์ ธ์ค๋ ์์ด์์์
์ธ๋ฒคํ ๋ฆฌ์ ์ฌ๋กฏ์ ๊ฐ์ง๋ list๋ก. ํ ์ถ๊ฐ ํ ๋ ์ค์ฒฉ๊ฐ๋ฅํ ํ์ ์ ์์ดํ ์ด๋ฉด ํด๋น ์์ดํ ์ด ํ ๋น๋ ์ฌ๋กฏ์ด ์๋์ง ์ฐพ์. ์์ผ๋ฉด ๊ฐฏ์ ๋๋ ค์ฃผ๊ณ ์์ผ๋ฉด ๋น์ฌ๋กฏ ์ฐพ์์ ํ ๋น ์ค์ฒฉ ๋ถ๊ฐ ์์ดํ (์ฅ๋น)์ด๋ผ๋ฉด ๋น์ฌ๋กฏ ์ฐพ์์ ํด๋น ์ฌ๋กฏ์ ํ ๋น
์๋ ค์ค๋ ค๊ณ ๋ฌผ์ด๋ณธ์ค ์์๋๋ฐ ๋ฐฉ๋ฒ ์ฐ๋ ๋๊ธ ์ญ์ ํด๋ฒ๋ฆฌ๋ค;;;
๋ต๊ธ์๊ธธ๋ ๊ฑ ์ง์ด๊ฑด๋ฐ
if (!dic.containsKey(id)) dic.add(id, new List()); dic[id].add(Item);
Dictionary> dic
List ๋ ๊ฐ์ด ์ฐ๋๊ฒ ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ ๋ณด๋ค์, ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.
Dictionary์ key ๋ id๋ฅผ ๋ฃ๋ int, value๋ Item์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ List
์์ดํ ์ ์ข ๋ฅ๋ฅผ ๊ตฌ๋ถํ๋ ์ฉ๋์ ID์ ๊ฒ์์๋ ์์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ง๋ ์์ดํ , ๋ชฌ์คํฐ ๋ฑ์ ๋ถ์ฌ๋๋ ID๋ ๋ฌ๋ผ์ผํจ. ์ง๊ธ ๋ฌธ์ ๊ฐ ๋จ์ํ ์์ดํ ์ ์ข ๋ฅ๋ฅผ ๊ตฌ๋ถํ๋ ์๋ณ์๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถํ๋ ค๊ณ ํ๋๊ฑฐ ์ฅ๋น ๊ฐ์ด ๋์ผํ ์์ดํ ์ข ๋ฅ์ง๋ง "๋ค๋ฅธ ๊ฐ์ฒด"๋ก ์กด์ฌํ๋ ์ ๋ค์ ์์ดํ ์ข ๋ฅID๋ฅผ ํค๋ก ๋์ ๋๋ฆฌ์ ๋ด์ผ๋ฉด ๋น์ฐํ ์ด๋ฏธ ๋์ ๋๋ฆฌ์ ์กด์ฌํ๊ฒ๋์ ์๋์ง
static ๋ณ์ ํ๋ ์จ์ ์์ฑ์์ ++ํด์ ์์ดํ ๋ง๋ค ์ ์ฉ ์ ๋ํฌ ์์ด๋๊ฐ ๋ฌ๋ผ์ง๊ฒ ํด์ผ๊ฒ ๋ค์
GetInstacneID ํธ์ถํ๋ฉด ๊ทธ ์ค๋ธ์ ํธ์ ๊ณ ์ ์์ด๋ ๊ฐ์ ธ์ฌ์์์
GetInstanceID๋ ๋ชฐ๋๋๊ฑด๋ฐ!! ์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.