English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
스택은 요소를 LIFO 방식(후进先出)으로 저장하는 특별한 콜렉션 타입입니다. C#은 일반적인 Stack<T>와 Stack 콜렉션 클래스를 포함하고 있습니다. 일반적인 Stack<T> 콜렉션을 사용하는 것이 좋습니다.
스택은 LIFO 형태로 일시적인 데이터를 저장하는 데 매우 유용하며, 요소의 값을 검색한 후에 제거하고자 할 수 있습니다.
Stack<T>는 LIFO(Last In, First Out) 콜렉션입니다.
그것은 System.Collection.Generic 이름 공간 아래에 있습니다.
Stack<T>는 지정된 유형의 요소를 포함할 수 있습니다. 그것은 컴파일 시 타입 체크를 제공하며, 박스링을 수행하지 않습니다./박스解除,因为它是一种泛型。
Push() 메서드를 사용하여 요소를 추가할 수 있습니다. 컬렉션으로 초기화할 수 없습니다.-initializer)语法。
initializer) 문법을 사용할 수 있습니다.
스택 생성
Stack<int> myStack = new Stack<int>(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); foreach (var item in myStack) Console.Write(item + ","); //출력4,3,2,1,
어떻게 스택을 배열에서 생성할 수 있는지 예제를 보여드리겠습니다. 아래 예제에서는 Push() 메서드를 사용하여 Stack <T>에 요소를 생성하고 추가합니다. 스택은 null (참조형 타입에 대해)과 중복 값을 허용합니다.
int[] arr = new int[]{ 1, 2, 3, 4}; Stack<int> myStack = new Stack<int>(arr); foreach (var item in myStack) Console.Write(item + ","); //출력4,3,2,1,
속성 | 사용법 |
---|---|
Count | 스택에 있는 요소의 총 수를 반환합니다。 |
메서드 | 사용법 |
---|---|
Push(T) | 스택 상단에 항목을 추가합니다。 |
Peek() | 스택의 상단 항목을 반환합니다。 |
Pop() | 스택의 상단에서 항목을 제거하고 반환합니다。 |
Contains(T) | 스택에 항목이 있는지 확인합니다。 |
Clear() | 스택에서 모든 항목을 제거합니다。 |
Pop() 메서드는 마지막 요소를 반환하고 스택에서 제거합니다. 스택이 비어 있으면 InvalidOperationException이 발생합니다. 따라서 Pop() 메서드를 호출하기 전에 항상 스택에 있는 요소 수를 확인하십시오.
Stack<int> myStack = new Stack<int>(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); Console.Write("스택의 요소 수: {0}", myStack.Count); while (myStack.Count > 0) Console.Write(myStack.Pop()); + ","); Console.Write("스택의 요소 수: {0}", myStack.Count);
스택의 요소 수:4 4,3,2,1, 스택의 요소 수: 0
Peek() 메서드는 스택에서 마지막에 추가된 값을 반환하지만, 그 값을 제거하지 않습니다. 빈 스택에서 Peek() 메서드를 호출하면 InvalidOperationException이 발생합니다. 따라서 Peek() 메서드를 사용하여 요소를 검색하기 전에 항상 스택에 있는 요소를 확인하십시오.
Stack<int> myStack = new Stack<int>(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); Console.Write("Stack에 있는 요소 수: {0}", myStack.Count);// 출력 4 if(myStack.Count > 0){ Console.WriteLine(myStack.Peek()); // 출력 4 Console.WriteLine(myStack.Peek()); // 출력 4 } Console.Write("Stack에 있는 요소 수: {0}", myStack.Count);// 출력 4
Contains() 메서드는 지정된 요소가 Stack 집합에 존재하는지 확인합니다. 존재하면 true를 반환하고, 존재하지 않으면 false를 반환합니다.
Stack<int> myStack = new Stack<int>(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); myStack.Contains(2); // true 반환 myStack.Contains(10); // false 반환