Коллекцию типа ArrayList можно отсортировать с помощью метода Sort (). В этом случае поиск в отсортированной коллекции с помощью метода BinarySearch () становится еще более эффективным. Применение обоих методов демонстрируется в приведенном ниже примере программы.

// Отсортировать коллекцию типа ArrayList и осуществить в ней поиск.

using System;

using System.Collections;

class SortSearchDemo { static void Main() {

// Создать коллекцию в виде динамического массива.

ArrayList al = new ArrayList();

// Добавить элементы в динамический массив.

al.Add(55);

al.Add(43) ;

al.Add(-4);

al.Add(88);

al.Add(3);

al.Add(19) ;

Console.Write('Исходное содержимое: '); foreach(int i in al)

Console.Write (i + ' ');

Console.WriteLine (' ');

// Отсортировать динамический массив, al.Sort();

// Отобразить содержимое динамического массива, используя цикл foreach.

Console..Write ('Содержимое после сортировки: ') ; foreach (int i in al)

Console.Write (i + ' ');

Console.WriteLine (' ');

Console.WriteLine('Индекс элемента 43: ' + al.BinarySearch (43));

}

}

Ниже приведен результат выполнения этой программы.

Исходное содержимое: 55 43 -488 3 19

Содержимое после сортировки: -4 3 19 43 55 88

Индекс элемента 43: 3

В одной и той же коллекции типа ArrayList могут храниться объекты любого типа. Тем не менее во время сортировки и поиска в ней эти объекты приходится сравнивать. Так, если бы список объектов в приведенном выше примере программы содержал символьную строку, то их сравнение привело бы к исключительной ситуации. Впрочем, для сравнения символьных строк и целых чисел можно создать специальные методы. О таких методах сравнения речь пойдет далее в этой главе.

Получение массива из коллекции типа ArrayList

В работе с коллекцией типа ArrayList иногда требуется получить из ее содержимого обычный массив. Этой цели служит метод ТоАггау (). Для преобразования коллекции в массив имеется несколько причин. Две из них таковы: потребность в ускорении обработки при выполнении некоторых операций и необходимость передавать массив методу, который не перегружается, чтобы принять коллекцию. Но независимо от конкретной причины коллекция типа ArrayList преобразуется в обычный^лассив довольно просто, как показано в приведенном ниже примере программы.

// Преобразовать коллекцию типа ArrayList в обычный массив.

using System;

using System.Collections;

class ArrayListToArray { static void Main() {

ArrayList al = new ArrayList();

// Добавить элементы в динамический массив, al.Add(1); al.Add(2); al.Add(3) ; al.Add(4) ;

Console.Write('Содержимое: '); foreach(int i in al)

Console.Write(i + ' ');

Console.WriteLine();

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату