Часть II. Объектно-ориентированное программирование
чески содержатся в коллекции. То есть значение
Capacity
всегда больше
Count
(так среда делает). Поэтому после добавления к коллекции пяти
элементов объем коллекции (
Capacity
) стал равен 8.
Рис. 12.9.
Результат проверки работы методов класса
List
Глава 12. Коллекции. Обобщения
283
Посредством метода
Contains()
проверяется наличие некоторого эле-
мента в списке, с помощью метода
Insert()
в середину списка вставля-
ется новый элемент, после чего снова выводится содержимое списка.
Свойство по умолчанию
Item()
(индексатор в C#) позволяет извлечь
элемент из списка, с помощью метода
Remove()
удаляется первый эк-
земпляр дублированного элемента, добавленный ранее, и содержимое
списка выводится вновь. Метод
Remove()
всегда удаляет первый обна-
руженный им экземпляр. С помощью метода
TrimExcess()
емкость
уменьшается в соответствии с числом элементов и выводятся значения
свойств
Capacity
и
Count
. Если незадействованная емкость составляет
менее 10% от общей емкости, изменение размера списка не требуется.
В заключение используется метод
Clear()
для удаления всех элементов
из списка и выводятся значения свойств
Capacity
и
Count
. Отметим еще
одну деталь: оператор
foreach
для коллекции, образованной из этого
класса, не требует создания перечислителя и связки его с этим опера-
тором.
Создание сравнимых объектов
Сравнение объектов может происходить по разным аспектам. Напри-
мер, по типам: относятся ли объекты к одному и тому же типу или
к разным типам. Для этого существуют операторы
is
и
as
. Но мож-
но сравнивать объекты по значениям их определенных полей. Тут уже
употребляются обычные операции сравнения: "больше", "меньше"
и т. д. Такой способ сравнения позволяет выполнять одну из необходи-
мых операций при обработке информации — сортировку, т. е. упорядо-
чение некоего вида информации по величине того или иного ее поля в
сторону его увеличения или убывания. Для этой цели существует спе-
циальный интерфейс
IComparable
в пространстве имен
System
с единст-
венным своим членом — методом
CompareTo()
. Это обобщенный метод
сравнения для типа, который реализуется типом или классом значения,
чтобы упорядочить или сортировать его экземпляры. Он возвращает
число типа
int
, значение которого указывает на местоположение срав-
ниваемых объектов: если возвращаемое число меньше нуля, это значит,
что экземпляр класса, в котором находится метод сравнения, располо-
жен (в памяти) перед указанным в параметре метода объектом. Если
возвращаемое число больше нуля, это значит, что экземпляр класса,
в котором находится метод сравнения, расположен (в памяти) после
указанного в параметре метода объекта. При равенстве нулю объекты
равны.
284
Do'stlaringiz bilan baham: |