๐งต ์ปฌ๋ ์ ๊ณผ ์ผ๋ฐํ ์ปฌ๋ ์
โฐ ์ปฌ๋ ์ ์ด๋?
โซ ๊ฐ์ ์ฑ๊ฒฉ์ ๋๋ ๋ฐ์ดํฐ์ ๋ชจ์์ ๋ด๋ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค.
โซ .NET ํ๋ ์์ํฌ๊ฐ ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ๋ก ICollection ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๋๋ค.
โฐ ์ปฌ๋ ์ VS ์ผ๋ฐํ ์ปฌ๋ ์
๐น ์ปฌ๋ ์
โซ ์ปฌ๋ ์ ํด๋์ค๋ค์ ๋ชจ๋ objectํ์ ๊ธฐ๋ฐ์ผ๋ก ArrayList์ Add(), Insert() ๋ฉ์๋์ ์ ์ธ์ ๋ณด๋ฉด
object ํ์์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
โซ ์ด๋ค ํ์์ ๋ฃ๋๋ผ๋ objectํ์์ผ๋ก ๋ฐ์ฑ(Boxing)์ด ๋์ด ์ ๋ ฅ๋๊ณ
๋ฐ๋๋ก ArrayList์ ์์์ ์ ๊ทผํด์ ์ฌ์ฉํ ๋๋ ์๋์ ๋ฐ์ดํฐ ํ์์ผ๋ก ์ธ๋ฐ์ฑ(Unboxing)์ด ์ด๋ฃจ์ด์ง๋ค.
(ํ์ ๋ณํ)
โซ ์ปฌ๋ ์ ์ ์์์ ์ ๊ทผํ ๋๋ง๋ค ํ์ ๋ณํ์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์ฑ๋ฅ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค.
๐ธ ์ผ๋ฐํ ์ปฌ๋ ์
โซ ์ผ๋ฐํ ์ปฌ๋ ์ ์ object ํ์ ๊ธฐ๋ฐ์ ์ปฌ๋ ์ ์ด ๊ฐ๊ณ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
โซ ์ผ๋ฐํ ์ปฌ๋ ์
์ ์ผ๋ฐํ์ ๊ธฐ๋ฐํด์ ๋ง๋ค์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผํ ๋ ์ปฌ๋ ์
์์ ์ฌ์ฉํ ํ์์ด ๊ฒฐ์ ๋๊ธฐ
๋๋ฌธ์ ์ธ๋ฐ์๋ ํ์๋ณํ์ ์ผ์ผํค์ง ์๊ณ ์๋ชป๋ ํ์์ ๊ฐ์ฒด๋ฅผ ๋ด๊ฒ ๋ ์ํ๋ ํผํ ์ ์๋ค.
๐ ์ปฌ๋ ์ ๊ณผ ์ผ๋ฐํ ์ปฌ๋ ์ 4๊ฐ์ง
1. ArrayList ์ List<T>
ArrayList
- ๊ฐ์ฅ ๋ฐฐ์ด๊ณผ ๋ฎ์ ์ปฌ๋ ์
- ์์์ ์ ๊ทผํ ๋๋ [ ] ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๊ณ , ํน์ ์์น์ ์๋ ์์์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ํ ๋น ํ ์ ์๋ค
- ์ฉ๋์ ๋ฏธ๋ฆฌ ์ง์ ํ ํ์๊ฐ ์๋ค
- Method
- Add() : ์ปฌ๋ ์ ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋ ์์ ๋ค์ ์ ์์๋ฅผ ์ถ๊ฐ
- RemoveAt() : ํน์ ์ธ๋ฑ์ค์ ์๋ ์์๋ฅผ ์ ๊ฑฐ
- Insert() : ์ํ๋ ์์น์ ์ ์์๋ฅผ ์ฝ์
List<T>
- ArrayList์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ฉฐ ์ฌ์ฉ๋ฒ๋ ๋์ผ
- List<T> ํด๋์ค๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ํ์ ๋งค๊ฐ ๋ณ์๋ฅผ ํ์๋ก ํ๊ณ , ํ์ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ ฅํ ํ์ ์ธ์๋ ์ ๋ ฅ์ ํ์ฉํ์ง ์๋๋ค
2. Queue ์ Queue<T>
Queue
- FIFO (First In - First Out)
- ๋ฐ์ดํฐ๋ ์์ ์ ์ฐจ๋ก๋๋ก ์ ๋ ฅํด๋๋ค๊ฐ ์ ๋ ฅ๋ ์์๋๋ก ํ๋์ฉ ๊บผ๋ด ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
- Method
- Enqueue() : Queue ์ ๋ฐ์ดํฐ ์ ๋ ฅ
- Dequeue() : ๋ฐ์ดํฐ ๊บผ๋ผ ๋
Queue<T>
- Queue์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ฉฐ ์ฌ์ฉ๋ฒ๋ ๋์ผ
- Queue<T> ํด๋์ค๋ ํ์ ๋งค๊ฐ ๋ณ์ ํ์
3. Stack ๊ณผ Stack<T>
Stack
- LIFO (Last In - First Out)
- ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋์ค์ ๋๊ฐ๊ณ , ๋์ค์ ๋ค์ด์จ ๋ฐ์ดํฐ๋ ๋จผ์ ๋๊ฐ๋ ๊ตฌ์กฐ์ ์ปฌ๋ ์
- Method
- Push() : Stack ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๋
- Pop() : ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋
Stack<T>
- Stack์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ฉฐ ์ฌ์ฉ๋ฒ๋ ๋์ผ
- Stack<T> ํด๋์ค๋ ํ์ ๋งค๊ฐ ๋ณ์ ํ์
4. Hashtable ๊ณผ Dictionary<TKey, TValue>
Hashtable
- Key ์ Value์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
- ํ์ ์๋๊ฐ ๋น ๋ฅด๊ณ ์ฌ์ฉ์ด ํธ๋ฆฌ
- Hashing : ํค๋ฅผ ์ด์ฉํด์ ๋จ๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ์ปฌ๋ ์ ๋ด์ ์ฃผ์๋ฅผ ๊ณ์ฐํ๋ค.
Dictionary<TKey, TValue>
- Hashtable์ ์ผ๋ฐํ ๋ฒ์
โป ํด๋น ํฌ์คํ ์ใ์ด๊ฒ์ด C#์ด๋ค(๋ฐ์ํ ์ )ใ์ฑ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑํ์์ต๋๋ค.
'์ธ์ด > C#. JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[.NET] ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ (Serialize, Deserialize) (0) | 2021.04.06 |
---|---|
[.NET] IExtenderProvider Interface (feat.ToolTip) (0) | 2021.04.05 |
[JAVA] StringTokenizer ์ฌ์ฉ๋ฒ (0) | 2021.01.05 |
[C# ์คํฐ๋ - Day1] DBHelper ์์ฑํ๊ธฐ (0) | 2020.12.24 |
[C#] txt ํ์ผ์ ๋ก๊ทธ ๊ธฐ๋กํ๊ธฐ (StreamWriter ๋ฉ์๋) (0) | 2020.12.18 |