Stack<T>
2016.10.04. 19:03
크기가 변하는 LIFO(후입선출) 방식의 컬렉션을 나타낸다.
Push 개체를 Stack의 맨 위에 삽입
Pop Stack 의 맨 위에서 개체를 제거하고 반환
Peek Stack의 맨 위에서 개체를 제거하지 않고 반환
using System;
using System.Collections.Generic;
namespace StackTEx
{
public class Enemy {
public string Name { get; set; }
public int Level { get; set; }
public int HP { get; set; }
public int Exp { get; set; }
public void printEnemyInfo() {
Console.WriteLine ("Name : {0} Level : {1} HP : {2} Exp : {3}",
Name, Level, HP, Exp);
}
}
class MainClass
{
public static Stack<Enemy> enemyStack;
public static void Main (string[] args)
{
enemyStack = new Stack<Enemy>();
// 추가
enemyStack.Push (new Enemy () { Name = "Slime", Level = 1,
HP = 200, Exp = 30 });
enemyStack.Push (new Enemy () { Name = "Zombie", Level = 2,
HP = 100, Exp = 50 });
enemyStack.Push (new Enemy () { Name = "Skeleton", Level = 3,
HP = 120, Exp = 80 });
enemyStack.Push (new Enemy () { Name = "Bugbear", Level = 4,
HP = 300, Exp = 150 });
enemyStack.Push (new Enemy () { Name = "Bugbear", Level = 5,
HP = 350, Exp = 180 });
Console.WriteLine ("**********************");
foreach (Enemy enemy in enemyStack) {
enemy.printEnemyInfo();
}
// 삭제
Console.WriteLine ("********* Out *********");
Enemy outEnemy = enemyStack.Pop ();
outEnemy.printEnemyInfo ();
Console.WriteLine ("**********************");
foreach (Enemy enemy in enemyStack) {
enemy.printEnemyInfo();
}
// 검색 후 삭제
Console.WriteLine ("******** Last *********");
Enemy lastEnemy = enemyStack.Peek();
lastEnemy.printEnemyInfo ();
}
}
}
|
cs |
'프로그래밍 > Unity' 카테고리의 다른 글
해시테이블_충돌 (0) | 2017.04.09 |
---|---|
해시테이블(hash table) (0) | 2017.04.09 |
Queue<T> (0) | 2017.04.09 |
Dictionary<TKey, TValue> (0) | 2017.04.09 |
List<T> (0) | 2017.04.09 |