Здание: жилое помещение
Книга: набор печатных слов
Трактор: сельскохозяйственная машина
Яблоко: съедобный фрукт
--Содержимое списка, полученное с помощью целочисленных индексов.
Транспортное средство
Жилое помещение
Набор печатных слов
Съедобный фрукт
--Целочисленные индексы элементов списка.
автомобиль: 0
здание: 1
книга: 2
яблоко: 3
Класс Stack
Стек представляет собой список, добавление и удаление элементов к которому осуществляется по принципу "последним пришел — первым обслужен" (last-in, first-out — LIFO).
Стек — это динамическая коллекция, которая при необходимости увеличивается, чтобы принять для хранения новые элементы.
Стек реализует интерфейсы:
• ICollection,
• IEnumerable,
• ICloneable.
Методы, определенные в классе Stack
Метод | Описание |
public virtual bool Contains(object value) | Возвращает значение true, если объект value содержится в вызывающем стеке. В противном случае возвращает значение false |
public virtual void Clear() | Устанавливает свойство Count равным нулю, тем самым эффективно очищая стек |
public virtual object Peek() | Возвращает элемент, расположенный в вершине стека, но не удаляет его |
public virtual object Pop() | Возвращает элемент, расположенный в вершине стека, и удаляет его |
public virtual void Push(object value) | Помещает объект value в стек |
public static Stack Synchronized(Stack stk) | Возвращает синхронизированную версию stack-списка, переданного в параметре stk |
public virtual object[ ] ToArray() | Возвращает массив, который содержит копии элементов вызывающего стека |
// Демонстрация использования класса Stack.
using System;
using System. Collections;
Class StackDemo
{
public static void Main()
{
int a;
Stack st = new Stack();
st.Push(22);
st.Push(65);
st.Push(91);
foreach (int i in st) Console.Write(i + " ");
Console.WriteLine();
try
{
a = (int)st.Pop(); Console.WriteLine(a);
a = (int)st.Pop(); Console.WriteLine(a);
a = (int)st.Pop(); Console.WriteLine(a);
a = (int)st.Pop(); Console.WriteLine(a);
}
catch (InvalidOperationException)
{
Console.WriteLine("Стек пуст.");
}
}
}
Хранение битов с помощью класса BitArray
Класс BitArray предназначен для поддержки коллекции битов. Поскольку его назначение состоит в хранении битов, а не объектов, то и его возможности отличаются от возможностей других коллекций. Тем не менее, класс BitArray поддерживает базовый набор средств коллекции посредством реализации интерфейсов iCollection, lEnumerable и ICloneable.
С помощью этого конструктора можно создать BitArray-коллекцию заданного размера:
Public BitArray (int size)
Здесь параметр size задает количество битов в коллекции, причем все они инициализируются значением false.
public BitArray (bool[] bits)
В этом случае каждый элемент массива bits становится битом BitArray-коллекции. При этом каждый бит в коллекции соответствует элементу массива bits. Более того, порядок элементов массива bits аналогичен порядку битов в коллекции.
BitArray-коллекцию можно также создать из массива байтов. Для этого используйте следующий конструктор:
public BitArray (byte[] bits)
Здесь битами коллекции становится набор битов, содержащийся в массиве bits, причем элемент bits[0] определяет первые восемь битов, элемент bits[1] — вторые восемь битов и т.д.
Подобным образом можно создать Bit Array-коллекцию из массива других типов.
BitArray-коллекций могут быть индексированными. Каждый индекс соответствует определенному биту, причем нулевой индекс соответствует младшему биту.
В коллекции созданы методы для выполнения логических операций с битами.
// Демонстрация использования класса BitArray.
using System;
using System.Collections;
Class BADemo
{
public static void showBits(string rem, BitArray bits)
{
Console.WriteLine(rem);
for (int i = 0; i < bits.Count; i++)
Console.Write("{0, -6} ", bits[i]);
Console.WriteLine("\n");
}
public static void Main()
{
BitArray ba = new BitArray(8); // все биты = false
byte[] b = { 67 };
BitArray ba2 = new BitArray(b);
Console.Write("Бит 5 = {0, -6} ", ba2[5]);
showBits("Исходное содержимое бит.коллекции ba:", ba);
ba = ba.Not();
showBits ("Содержимое коллек. ba после вызова Not():", ba);
showBits("Содержимое коллекции ba2:", ba2);
BitArray ba3 = ba.Xor(ba2);
showBits("Результат операции ba XOR ba2:", ba3);
}
}
Дата: 2019-02-02, просмотров: 250.