В классеArrayListподдерживаются динамические массивы, расширяющиеся и сокращающиеся по мере необходимости. В языке C# стандартные массивы имеют фиксированную длину, которая не может изменяться во время выполнения программы. Это означает, что количество элементов в массиве нужно знать заранее. Но иногда требуемая конкретная длина массива остается неизвестной до самого момента выполнения программы. Именно для таких ситуаций и предназначен классArrayList.В классеArrayListопределяется массив переменной длины, который состоит из ссылок на объекты и может динамически увеличивать и уменьшать свой размер. Массив типаArrayListсоздается с первоначальным размером. Если этот размер превышается, то массив автоматически расширяется. А при удалении объектов из такого массива он автоматически сокращается. Коллекции классаArrayListшироко применяются в практике программирования на С#. Именно поэтому они рассматриваются здесь подробно. Но многие способы применения коллекций классаArrayListраспространяются и на другие коллекции, в том числе и на обобщенные.
В классеArrayListреализуются интерфейсыICollection, IList, IEnumerableиICloneable.Ниже приведены конструкторы классаArrayList.
public ArrayList
public ArrayList(ICollection с)
public ArrayList(int
Первый конструктор создает пустую коллекцию классаArrayListс нулевой первоначальной емкостью. Второй конструктор создает коллекцию типаArrayListс количеством инициализируемых элементов, которое определяется параметромси равно первоначальной емкости массива. Третий конструктор создает коллекцию, имеющую указанную первоначальную емкость, определяемую параметром
В классеArrayListопределяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Некоторые из наиболее часто используемых методов классаArrayListперечислены в табл. 25.4. Коллекцию классаArrayListможно отсортировать, вызвав методSort . В этом случае поиск в отсортированной коллекции с помощью методаBinarySearch становится еще более эффективным. Содержимое коллекции типаArrayListможно также обратить, вызвав методReverse .
Таблица 25.4. Наиболее часто используемые методы, определенные в классе ArrayList
Метод
Описание
public virtual void AddRange(Icollection с) public virtual int BinarySearch(object