ArrayList, Stack, Queue
using System.Collections;
using static System.Console;
//์ด์ ๊ฐ์ด using static System.Console; ์ ์ ์ธํ๋ฉด ๋ณธ๋ฌธ์์ Console์ ์ ์ธํ๊ณ
// WriteLine()๋ง์ผ๋ก ์ถ๋ ฅ๋ฌธ์ ์์ฑํ ์ ์๋ค.
namespace CollectionInitialEx
{
class Program
{
static void Main(string[] args)
{
//์ปฌ๋ ์
์ด๊ธฐ์๋ฅผ ์ด์ฉํ ์ด๊ธฐํ ๋ฐฉ๋ฒ => Stack, Queue์์๋ ์ฌ์ฉํ ์ ์๋ค.
//Stack์ด๋ Queue๋ Add๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ๋๋ฌธ
//์ปฌ๋ ์
์ด๊ธฐ์๋ IEnumerable์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ Add()๋ฉ์๋๋ฅผ ๊ตฌํํ๊ณ ์๋ค.
ArrayList al = new ArrayList() {10, 20, 30};
int[] array = { 11, 22, 33, 44, 55 };
ArrayList al2 = new ArrayList(array);
foreach (Object o in al2)
{
Console.WriteLine($"ArrayList : {o}");
}
WriteLine();
Stack stack = new Stack(array);
foreach (Object o in stack)
{
Console.WriteLine($"Stack : {o}");
}
WriteLine();
Queue q = new Queue(array);
foreach(Object o in q)
{
WriteLine($"Queue : {o}");
}
}
}
}
Output
ArrayList : 11
ArrayList : 22
ArrayList : 33
ArrayList : 44
ArrayList : 55
Stack : 55
Stack : 44
Stack : 33
Stack : 22
Stack : 11
Queue : 11
Queue : 22
Queue : 33
Queue : 44
Queue : 55
์ปฌ๋ ์
์ด๊ธฐ์
๋ฅผ ์ด์ฉํ ์ด๊ธฐํ ๋ฐฉ๋ฒ => Stack, Queue
์์๋ ์ฌ์ฉํ ์ ์๋ค.
Stack์ด๋ Queue
๋ Add๋ฉ์๋
๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ๋๋ฌธ
์ปฌ๋ ์
์ด๊ธฐ์
๋ IEnumerable
์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ Add()๋ฉ์๋๋ฅผ ๊ตฌํ
ํ๊ณ ์๋ค.
using static System.Console;
- ์ด์ ๊ฐ์ด
using static System.Console;
์ ์ ์ธํ๋ฉด ๋ณธ๋ฌธ์์ Console
์ ์ ์ธํ๊ณ WriteLine()
๋ง์ผ๋ก ์ถ๋ ฅ๋ฌธ์ ์์ฑํ ์ ์๋ค.
Hashtable
using System.Collections;
namespace HashtableInitialEx
{
//Hashtable ์ด๊ธฐํ ํ ๋ ๋์
๋๋ฆฌ ์ด๊ธฐ์(Dictionary Initialiser)๋ฅผ ์ด์ฉํ ์ ์๋ค.
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable()
{
["seoul"] = "์์ธ",
["incheon"] = "์ธ์ฒ",
["kwangju"] = "๊ด์ฃผ"
};
Console.WriteLine(ht["seoul"]);
Console.WriteLine(ht["incheon"]);
Console.WriteLine(ht["kwangju"]);
Hashtable ht2 = new Hashtable()
{
{ "seoul", "์์ธ" },
{ "incheon", "์ธ์ฒ" },
{ "kwangju", "๊ด์ฃผ" },
};
Console.WriteLine(ht2["seoul"]);
Console.WriteLine(ht2["incheon"]);
Console.WriteLine(ht2["kwangju"]);
}
}
}
Output
์์ธ
์ธ์ฒ
๊ด์ฃผ
์์ธ
์ธ์ฒ
๊ด์ฃผ
Hashtable
์ ์ด๊ธฐํ
ํ ๋๋์
๋๋ฆฌ ์ด๊ธฐ์(Dictionary Initialiser)
๋ฅผ ์ด์ฉํ ์ ์๋ค.
- ์์ ์ฝ๋์์์ฒ๋ผ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์์ฑํ ์ ์๊ณ , ํ์์ ๋ฐฉ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ์ฌ์ฉ๋๋ค.
Indexer(์ธ๋ฑ์)
- ์ธ๋ฑ์(Indexer) : ํด๋์ค ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด ํํ๋ก ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ ์ก์ธ์ค ํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ.
- ๊ฐ์ฒด๋ฅผ ๋ง์น ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค.
์ธ๋ฑ์ค ์ ์ธ ๋ฐฉ๋ฒ
class ํด๋์ค๋ช
{
์ ๊ทผ์ ํ์ ์ธ๋ฑ์ํ์ this[ํ์ index]
{
get
{
idx๋ฅผ ์ด์ฉํด์ ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ
}
set
{
idx๋ฅผ ์ด์ฉํด์ ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
}
}
}
namespace IndexerEx
{
class DemoList
{
private int[] array;
public DemoList()
{
array = new int[4];
}
// ์ธ๋ฑ์ ์ ์ธ๋ถ
public int this[int idx]
{
get { return array[idx]; }
set
{
if (idx >= array.Length)
{
Array.Resize<int>(ref array, idx + 1);
Console.WriteLine($"๋ฐฐ์ด์ฌ์ด์ฆ ์กฐ์ : {array.Length}");
}
array[idx] = value;
}
}
public int Length
{
get { return array.Length; }
}
}
class Program
{
static void Main(string[] args)
{
DemoList list = new DemoList();
for (int i = 0; i < 5; i++)
{
list[i] = i;
}
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]); // ์ธ๋ฑ์๋ฅผ ํตํด ๋ฐฐ์ด์ฒ๋ผ ์ ๊ทผํ ์ ์๋ค.
}
}
}
}
Output
๋ฐฐ์ด์ฌ์ด์ฆ ์กฐ์ : 5
0
1
2
3
4