Stack Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili koleksi objek non-generik last-in-first-out (LIFO) sederhana.
public ref class Stack : System::Collections::ICollection
public ref class Stack : ICloneable, System::Collections::ICollection
public class Stack : System.Collections.ICollection
public class Stack : ICloneable, System.Collections.ICollection
[System.Serializable]
public class Stack : ICloneable, System.Collections.ICollection
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Stack : ICloneable, System.Collections.ICollection
type Stack = class
interface ICollection
interface IEnumerable
type Stack = class
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
type Stack = class
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Stack = class
interface ICollection
interface IEnumerable
interface ICloneable
Public Class Stack
Implements ICollection
Public Class Stack
Implements ICloneable, ICollection
- Warisan
-
Stack
- Atribut
- Penerapan
Contoh
Contoh berikut menunjukkan cara membuat dan menambahkan nilai ke Tumpukan dan cara menampilkan nilainya.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection );
int main()
{
// Creates and initializes a new Stack.
Stack^ myStack = gcnew Stack;
myStack->Push( "Hello" );
myStack->Push( "World" );
myStack->Push( "!" );
// Displays the properties and values of the Stack.
Console::WriteLine( "myStack" );
Console::WriteLine( "\tCount: {0}", myStack->Count );
Console::Write( "\tValues:" );
PrintValues( myStack );
}
void PrintValues( IEnumerable^ myCollection )
{
IEnumerator^ myEnum = myCollection->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
myStack
Count: 3
Values: ! World Hello
*/
using System;
using System.Collections;
public class SamplesStack {
public static void Main() {
// Creates and initializes a new Stack.
Stack myStack = new Stack();
myStack.Push("Hello");
myStack.Push("World");
myStack.Push("!");
// Displays the properties and values of the Stack.
Console.WriteLine( "myStack" );
Console.WriteLine( "\tCount: {0}", myStack.Count );
Console.Write( "\tValues:" );
PrintValues( myStack );
}
public static void PrintValues( IEnumerable myCollection ) {
foreach ( Object obj in myCollection )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
myStack
Count: 3
Values: ! World Hello
*/
Imports System.Collections
Public Class SamplesStack
Public Shared Sub Main()
' Creates and initializes a new Stack.
Dim myStack As New Stack()
myStack.Push("Hello")
myStack.Push("World")
myStack.Push("!")
' Displays the properties and values of the Stack.
Console.WriteLine("myStack")
Console.WriteLine(ControlChars.Tab & "Count: {0}", myStack.Count)
Console.Write(ControlChars.Tab & "Values:")
PrintValues(myStack)
End Sub
Public Shared Sub PrintValues(myCollection As IEnumerable)
Dim obj As [Object]
For Each obj In myCollection
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' myStack
' Count: 3
' Values: ! World Hello
Keterangan
Kapasitas adalah Stack jumlah elemen yang dapat ditahan Stack . Karena elemen ditambahkan ke Stack, kapasitas secara otomatis ditingkatkan sesuai kebutuhan melalui realokasi.
Penting
Kami tidak menyarankan Anda menggunakan Stack
kelas untuk pengembangan baru. Sebagai gantinya, kami sarankan Anda menggunakan kelas generik System.Collections.Generic.Stack<T> . Untuk informasi selengkapnya, lihat Koleksi non-generik tidak boleh digunakan di GitHub.
Jika Count kurang dari kapasitas tumpukan, Push adalah O(1)
operasi. Jika kapasitas perlu ditingkatkan untuk mengakomodasi elemen baru, Push menjadi O(n)
operasi, di mana n
adalah Count. PopO(1)
adalah operasi.
Stacknull
menerima sebagai nilai yang valid dan memungkinkan elemen duplikat.
Konstruktor
Stack() |
Menginisialisasi instans Stack baru kelas yang kosong dan memiliki kapasitas awal default. |
Stack(ICollection) |
Menginisialisasi instans Stack baru kelas yang berisi elemen yang disalin dari koleksi yang ditentukan dan memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin. |
Stack(Int32) |
Menginisialisasi instans Stack baru kelas yang kosong dan memiliki kapasitas awal yang ditentukan atau kapasitas awal default, mana pun yang lebih besar. |
Properti
Count |
Mendapatkan jumlah elemen yang terkandung dalam Stack. |
IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke disinkronkan Stack (utas aman). |
SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke Stack. |
Metode
Clear() |
Menghapus semua objek dari Stack. |
Clone() |
Membuat salinan dangkal dari Stack. |
Contains(Object) |
Menentukan apakah elemen berada di Stack. |
CopyTo(Array, Int32) |
Stack Menyalin ke satu dimensi Arrayyang sudah ada, dimulai dari indeks array yang ditentukan. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetEnumerator() |
Mengembalikan IEnumerator untuk Stack. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
Peek() |
Mengembalikan objek di bagian Stack atas tanpa menghapusnya. |
Pop() |
Menghapus dan mengembalikan objek di bagian Stackatas . |
Push(Object) |
Menyisipkan objek di bagian Stackatas . |
Synchronized(Stack) |
Mengembalikan pembungkus yang disinkronkan (aman utas) untuk Stack. |
ToArray() |
Menyalin ke Stack array baru. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Metode Ekstensi
Cast<TResult>(IEnumerable) |
Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan. |
OfType<TResult>(IEnumerable) |
Memfilter elemen berdasarkan IEnumerable jenis tertentu. |
AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
AsQueryable(IEnumerable) |
Mengonversi menjadi IEnumerableIQueryable. |
Berlaku untuk
Keamanan Thread
Anggota statis publik (Shared
dalam Visual Basic) dari jenis ini aman untuk utas. Setiap anggota instans tidak dijamin aman untuk utas.
Untuk menjamin keamanan Stackutas , semua operasi harus dilakukan melalui pembungkus yang dikembalikan oleh Synchronized(Stack) metode .
Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Bahkan ketika koleksi disinkronkan, utas lain masih dapat memodifikasi koleksi, yang menyebabkan enumerator melemparkan pengecualian. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi atau menangkap pengecualian yang dihasilkan dari perubahan yang dibuat oleh utas lain.