ArrayList Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализует интерфейс IList с помощью массива с динамическим изменением размера по требованию.
public ref class ArrayList : System::Collections::IList
public ref class ArrayList : ICloneable, System::Collections::IList
public class ArrayList : System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
interface IEnumerable
interface IList
interface ICollection
type ArrayList = class
interface ICollection
interface IEnumerable
interface IList
interface ICloneable
type ArrayList = class
interface IEnumerable
interface IList
interface ICollection
interface ICloneable
[<System.Serializable>]
type ArrayList = class
interface IList
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
interface IList
interface ICollection
interface IEnumerable
interface ICloneable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
- Наследование
-
ArrayList
- Производный
- Атрибуты
- Реализации
Примеры
В следующем примере показано, как создать и инициализировать ArrayList и отобразить его значения.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
// Creates and initializes a new ArrayList.
ArrayList^ myAL = gcnew ArrayList;
myAL->Add( "Hello" );
myAL->Add( "World" );
myAL->Add( "!" );
// Displays the properties and values of the ArrayList.
Console::WriteLine( "myAL" );
Console::WriteLine( " Count: {0}", myAL->Count );
Console::WriteLine( " Capacity: {0}", myAL->Capacity );
Console::Write( " Values:" );
PrintValues( myAL );
}
void PrintValues( IEnumerable^ myList )
{
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces output similar to the following:
myAL
Count: 3
Capacity: 4
Values: Hello World !
*/
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add("World");
myAL.Add("!");
// Displays the properties and values of the ArrayList.
Console.WriteLine( "myAL" );
Console.WriteLine( " Count: {0}", myAL.Count );
Console.WriteLine( " Capacity: {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces output similar to the following:
myAL
Count: 3
Capacity: 4
Values: Hello World !
*/
Imports System.Collections
Public Class SamplesArrayList
Public Shared Sub Main()
' Creates and initializes a new ArrayList.
Dim myAL As New ArrayList()
myAL.Add("Hello")
myAL.Add("World")
myAL.Add("!")
' Displays the properties and values of the ArrayList.
Console.WriteLine("myAL")
Console.WriteLine(" Count: {0}", myAL.Count)
Console.WriteLine(" Capacity: {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
End Sub
Public Shared Sub PrintValues(myList As IEnumerable)
Dim obj As [Object]
For Each obj In myList
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces output similar to the following:
'
' myAL
' Count: 3
' Capacity: 4
' Values: Hello World !
Комментарии
Важно!
Не рекомендуется использовать класс для разработки ArrayList
новых приложений. Вместо этого рекомендуется использовать универсальный List<T> класс .
Класс ArrayList предназначен для хранения разнородных коллекций объектов . Однако он не всегда обеспечивает лучшую производительность. Вместо этого рекомендуется следующее:
- Для разнородной коллекции объектов используйте
List<Object>
тип (в C#) илиList(Of Object)
(в Visual Basic). - Для однородной коллекции объектов используйте List<T> класс . Сведения об относительной производительности этих классов см. в разделе Рекомендации по производительности в List<T> справочной статье. Общие сведения об использовании универсальных вместо неуниверсационных типов коллекций см. в статье Неуниверсовые коллекции не должны использоваться в GitHub.
Сортировка ArrayList не гарантируется. Необходимо отсортировать ArrayList , вызвав его Sort метод перед выполнением операций (например BinarySearch, ), для которых требуется ArrayList отсортировать . Чтобы сохранить коллекцию, которая автоматически сортируется по мере добавления новых элементов, можно использовать SortedSet<T> класс .
Емкость ArrayList — это количество элементов, которые могут храниться ArrayList . При добавлении элементов в ArrayListемкость автоматически увеличивается по мере необходимости путем перераспределения. Емкость можно уменьшить путем вызова TrimToSize или явного Capacity задания свойства.
Только платформа .NET Framework. Для очень больших ArrayList объектов можно увеличить максимальную емкость до 2 миллиардов элементов в 64-разрядной системе, задав enabled
атрибуту <gcAllowVeryLargeObjects>
элемента конфигурации значение true
в среде выполнения.
Доступ к элементам в этой коллекции можно получить с помощью целочисленного индекса. Индексы в этой коллекции отсчитываются от нуля.
Коллекция ArrayList принимает в null
качестве допустимого значения. Он также позволяет дублировать элементы.
Использование многомерных массивов в качестве элементов в ArrayList коллекции не поддерживается.
Конструкторы
ArrayList() |
Инициализирует новый экземпляр класса ArrayList, который является пустым и имеет начальную емкость по умолчанию. |
ArrayList(ICollection) |
Инициализирует новый экземпляр класса ArrayList, который содержит элементы, скопированные из указанной коллекции, и обладает начальной емкостью, равной количеству скопированных элементов. |
ArrayList(Int32) |
Инициализирует новый пустой экземпляр класса ArrayList с указанной начальной емкостью. |
Свойства
Capacity |
Возвращает или задает число элементов, которое может содержать список ArrayList. |
Count |
Получает число элементов, фактически содержащихся в списке ArrayList. |
IsFixedSize |
Получает значение, указывающее, имеет ли список ArrayList фиксированный размер. |
IsReadOnly |
Получает значение, указывающее, является ли объект ArrayList доступным только для чтения. |
IsSynchronized |
Возвращает значение, показывающее, является ли доступ к коллекции ArrayList синхронизированным (потокобезопасным). |
Item[Int32] |
Возвращает или задает элемент по указанному индексу. |
SyncRoot |
Получает объект, с помощью которого можно синхронизировать доступ к коллекции ArrayList. |
Методы
Adapter(IList) |
Создает оболочку класса ArrayList для указанного интерфейса IList. |
Add(Object) |
Добавляет объект в конец коллекции ArrayList. |
AddRange(ICollection) |
Добавляет элементы интерфейса ICollection в конец списка ArrayList. |
BinarySearch(Int32, Int32, Object, IComparer) |
Выполняет поиск элемента в диапазоне элементов отсортированного списка ArrayList, используя указанную функцию сравнения, и возвращает индекс элемента, отсчитываемый от нуля. |
BinarySearch(Object) |
Выполняет поиск элемента по всему отсортированному списку ArrayList, используя компаратор по умолчанию, и возвращает индекс элемента, отсчитываемый от нуля. |
BinarySearch(Object, IComparer) |
Выполняет поиск элемента по всему отсортированному списку ArrayList, используя указанный компаратор, и возвращает индекс элемента, отсчитываемый от нуля. |
Clear() |
Удаляет из коллекции ArrayList все элементы. |
Clone() |
Создает неполную копию ArrayList. |
Contains(Object) |
Определяет, входит ли элемент в коллекцию ArrayList. |
CopyTo(Array) |
Копирует весь список ArrayList в совместимый одномерный массив Array, начиная с начального элемента целевого массива. |
CopyTo(Array, Int32) |
Копирует целый массив ArrayList в совместимый одномерный массив Array, начиная с заданного индекса целевого массива. |
CopyTo(Int32, Array, Int32, Int32) |
Копирует диапазон элементов из списка ArrayList в совместимый одномерный массив Array, начиная с указанного индекса целевого массива. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
FixedSize(ArrayList) |
Возвращает оболочку ArrayList фиксированного размера. |
FixedSize(IList) |
Возвращает оболочку IList фиксированного размера. |
GetEnumerator() |
Возвращает перечислитель для всего ArrayList. |
GetEnumerator(Int32, Int32) |
Возвращает перечислитель для диапазона элементов в списке ArrayList. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetRange(Int32, Int32) |
Возвращает список ArrayList, представляющий подмножество элементов исходного списка ArrayList. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IndexOf(Object) |
Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в коллекцию ArrayList. |
IndexOf(Object, Int32) |
Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в диапазоне элементов списка ArrayList, начиная с заданного индекса и до последнего элемента. |
IndexOf(Object, Int32, Int32) |
Выполняет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в диапазоне элементов списка ArrayList, который начинается с заданного индекса и содержит указанное число элементов. |
Insert(Int32, Object) |
Вставляет элемент в коллекцию ArrayList по указанному индексу. |
InsertRange(Int32, ICollection) |
Вставляет элементы коллекции в список ArrayList в позиции с указанным индексом. |
LastIndexOf(Object) |
Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс последнего вхождения в коллекцию ArrayList. |
LastIndexOf(Object, Int32) |
Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс последнего вхождения в диапазоне элементов списка ArrayList, начиная с первого элемента и заканчивая элементом с заданным индексом. |
LastIndexOf(Object, Int32, Int32) |
Выполняет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс последнего вхождения в диапазоне элементов списка ArrayList, содержащем указанное число элементов и заканчивающемся в позиции с указанным индексом. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ReadOnly(ArrayList) |
Возвращает программу-оболочку ArrayList, доступную только для чтения. |
ReadOnly(IList) |
Возвращает программу-оболочку IList, доступную только для чтения. |
Remove(Object) |
Удаляет первое вхождение указанного объекта из коллекции ArrayList. |
RemoveAt(Int32) |
Удаляет элемент списка ArrayList с указанным индексом. |
RemoveRange(Int32, Int32) |
Удаляет диапазон элементов из списка ArrayList. |
Repeat(Object, Int32) |
Возвращает список ArrayList, элементы которого являются копиями указанного значения. |
Reverse() |
Изменяет порядок элементов во всем списке ArrayList на обратный. |
Reverse(Int32, Int32) |
Изменяет порядок элементов в указанном диапазоне. |
SetRange(Int32, ICollection) |
Копирует элементы коллекции в диапазон элементов списка ArrayList. |
Sort() |
Сортирует элементы во всем списке ArrayList. |
Sort(IComparer) |
Сортирует элементы во всем списке ArrayList с помощью указанной функции сравнения. |
Sort(Int32, Int32, IComparer) |
Сортирует элементы в диапазоне элементов списка ArrayList с помощью указанной функции сравнения. |
Synchronized(ArrayList) |
Возвращает синхронизированную (потокобезопасную) оболочку ArrayList. |
Synchronized(IList) |
Возвращает синхронизированную (потокобезопасную) оболочку IList. |
ToArray() | |
ToArray(Type) |
Копирует элементы списка ArrayList в новый массив с элементами указанного типа. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TrimToSize() |
Задает значение емкости, равное действительному количеству элементов в ArrayList. |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
Применяется к
Потокобезопасность
Открытые статические (Shared
в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.
может ArrayList поддерживать несколько модулей чтения одновременно, если коллекция не изменяется. Чтобы гарантировать потокобезопасность ArrayList, все операции должны выполняться через оболочку, возвращаемую методом Synchronized(IList) .
Перечисление коллекции не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки могут ее изменить, что приведет к тому, что перечислитель создаст исключение. Для обеспечения потокобезопасности при перечислении можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.