Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 168

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 168 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 1682019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 168)

Как только элемент будет добавлен в коллекцию, ои станет доступным посредством иидексатора. ИнтерФейс Шх сйхопаду В интерфейсе 1рвсгвопагу определяется такое поведение пеобобщенной коллекции, которое позволяет преобразовать уникальные ключи в соответствующие значения. Ключ представляет собой объект, с помощью которого значение извлекается впоследствии. Следовательно, в коллекции, реализующей интерфейс 101ссвопагу, хранятся пары "ключ-значение".

Как только подобная пара будет сохранена, ее можно извлечь с помощью ключа. интерфейс 101сгвопагу наследует от интерфейсов 1со11есг1оп и 1ЕпоюегаЬ1е. Методы, объявленные в иитерфейсе 1()1сс1опагу, сведены в табл. 24.3. Некоторые из иих генерируют исключение Агоцюепскц11Ехсерс1оп при попытке указать пустой ключ, поскольку пустые ключи не допускаются. Таблица 24.3. Методы, определенные в интерфейсе 1пховхопогу Описание чоЫ йс(с((оЬ)есг )с, оЬ)есс с) Добавляет а вызывающую коллекцию пару "ключ-значение", опре- деляемую параметрами )с и ч. Ключ к яе должен быть пустым чоха С1еаг() Удаляет асе пары "ключ-значение" из вызывающей коллекции ьоо1 сопгаьпз (оьзесг к) возвращает логическое значение ггче, если вызывающая коллекция содержит объект )с в качестве ключа, в противном случае— логическое значение га1эе 1вьссьопагухповегагог оегепияегагог() Возвращает перечислитепь дпя вызывающей коллекции чодс( Пекюче(оЬ)есс )с) Удаляет из коллекции элемент, ключ которого равен значению объекта )с Свойство Назначение Ьоо1 1зтьхепэьке ( десг ) Содержит логическое значение ггче, если словарь имеет фиксированный размер Ьоо1 1ввеасюп1у ( оесг ) Содержит логическое значение где, если словарь доступен только для чтения 1Со11ессьоп Кеуз ( чесс ) Получает коллекцию ключей гсо11есг1оп на1иез ( чек' ) получает коллекцию значений Для добавления пары "ключ — значение" в коллекцию типа 101сгуопагу служит метод дс(с( () .

Обратите внимание иа то, что ключ и его значение указываются отдельно. А для удаления элемента из коллекции следует указать ключ этого объекта при вызове метода Ееюоче ( ) . И для опорожнения коллекции вызывается метод С1е аг () . Для того чтобы выяснить, содержит ли коллекция конкретный объект, вызывается метод сопсахпэ () с указанным ключом искомого элемента. С помощью метода Сегепипсегагог() получается перечислитель, совместимый с коллекцией типа 1Р1сс1опагу. Этот перечислитель оперирует парами "ключ — змачеиие". В интерфейсе 101сс1опагу определяются перечисленные ниже свойства.

Глава 24. )(овпвкции, пврвчиспитвпи и итвратори 843 Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойств Кеуэ и На1оеэ. Кроме того, в интерфейсе 1п1сг1опагу определяется следующий индексатор: оЬ)есс ГЬ1в(оьресс геу) ( пест вес; ) Этот индексатор служит для получения и установки значения элемента коллекции, а также для добавления в коллекцию нового элемента. Однако в качестве индекса в данном случае служит ключ элемента, а не собственно индекс.

Интерфейсы 1Епишее аЬ2.е, 1Еиишега сох и хкуа ссхопаеуЕпишегацог Интерфейс 1ЕппптегаЬ1е является необобщенным, и поэтому он должен быть реализован в классе для поддержки перечислителей. Как пояснялось выше, интерфейс 1епптегаЬ1е реализуется во всех классах необобщенных коллекций, поскольку он наследуется интерфейсом 1со11есс1оп. Ниже приведен единственный метод Неснповегасог (), определяемый в интерфейсе 1ЕпоптегаЬ1е. 1Еповегасог Оесвппптегасог() Он возвращает коллекцию. Благодаря реализации интерфейса 1епомегаьье можно также получать содержимое коллекции в цикле Еогеасв. В интерфейсе 1еппмегасог определяются функции перечислителя.

С помощью методов этого интерфейса можно циклически обращаться к содержимому коллекции. Если в коллекции содержатся пары "ключ-значение" (словари), то метод беСЕппмегагог () возвращает объект типа 1()1СГ1опагунппптегагог, а не типа 1Епоптегагог. Интерфейс 1васггопагуЕпомегагог наследует от интерфейса 1Епоптегасог и вводит дополнительные функции, упрощающие перечисление словарей. В интерфейсе 1Еппптегасог определяются также методы Моттемехг () и Неэег () и свойство спггепг.

Способы их применения подробнее описываются далее в этой главе. А пока следует отметить, что свойство спггепг содержит элемент, получаемый в текущий момент. Метод моченехг () осуществляет переход к следующему элементу коллекции, а метод невес () возобновляет перечисление с самого начала. Интерфейсы 1Сошрагек и 1Едиау.д йуСошражег В интерфейсе 1соптрагег определяется метод Соптраге () для сравнения двух объектов: 1пг Совраге(ЬЬ)ест ит, оЬ)есг г2) Он возвращает положительное значение, если значение объекта и1 больше, чем у объекта тт2; отрицательное — если значение объекта к1 меньше, чем у объекта о2; и нулевое — если сравниваемые значения равны.

Данный интерфейс можно использовать для указания способа сортировки элементов коллекции. В интерфейсе 1Ек(па11сусоптрагег определяются два метода: Ьоо1 ЕЧоа1в (оЬзесс оЬут, оЬбесс оЬ22) 1пс ЕесяавЬСоое(оЬ)есс оЬУ) Метод Ет)оа1э () возвращает логическое значение ггое, если значения объектов оЬу1 и оЬ) 2 равны. А метод негназпсот)е () возвращает хеш-код для объекта оЬ11 844 Часть )!, Библиотека СЗ Структура Пхс~1опахуЕа~)Оу В пространстве имен яуя сею.

Со11есг1опя определена структура 01сг1опагуЕпсгу. Необобщенные коллекции пар "ключ-значение" сохраняют эти пары в объекте типа О1сг1опагуепггу. В данной структуре определяются два следующих свойства: рсЬ11с оЬбесг Кеу ) чек; яег; ) риь11с оьбесс уа1це ( сегк яес) ) Этн свойства служат для доступа к ключу нлн значению, связанному с элементом коллекции. Объект типа п1сгъопаг уЕп Гг у может быть сконструирован с помощью конструктора рипгзс О1сггопагукпггу(оЬ)есс К, оЬбесг ч) где )т обозначает ключ, а с — значение.

Классы необобщенных коллекций А теперь, когда представлены интерфейсы необобщенных коллекций, можно перейти к рассмотрению стандартных классов, в которых они реализуются. Ниже приведены классы необобщенных коллекций, за исключением коллекции типа въгйггау, рассматриваемой далее в этой главе. Класс Описание йггаушяг Определяет динамический массив, т.е. массив который при необходимости может увеличивать свой размер Наяьгапзв Определяет хеш-таблицу для пар "ключ-значение" ))иеие Определяет очередь, или список, действующий по принципу "первым пришел— первым обслужен" Яогсепъгяг Определяет отсортированный список пар "ключ-значение ягаск Определяет стек, или список, действующий по принципу "первым пришел— последним обслужен" Каждый из этих классов коллекций подробно рассматривается и демонстрируется далее на конкретных примерах.

Класс лхтаухджй В классе йггауъ1яг поддерживаются динамические массивы, расширяющиеся и сокращающиеся по мере необходимости. В языке С№ стандартные массивы имеют фиксированную длину, которая не может изменяться во время выполнения программы. Это означает, что количество элементов в массиве нужно знать заранее. Но иногда требуемая конкретная длина массива остается неизвестной до самого момента выполнения программы. Именно для таких ситуаций и предназначен класс йггауьуяг. В классе йггау11зг определяется массив переменной длины, который состоит нз ссылок на объекты и может динамически увеличивать и уменьшать свой размер.

Массив типа йггауЪ1яс создается с первоначальным размером. Если этот размер превышается, то массив автоматически расширяется. А прн удалении объектов из такого массива он автоматически сокращается. Коллекции класса йггауъъя Г широко применяются в практике программирования на С№. Именно поэтому они рассматриваются здесь подробно. Но многие приемы применения коллекций класса йггауъузс распространяются и на другие коллекции, в том числе н на обобщенные. Глава 24. Коллекции, перечкслителк к итератары 845 В классе Аггауааяг реализуются интерфейсы 1СЬ11есс1оп, 1Ььящ 1кпивегаЬ1е и 1В1опеаые.

Ниже приведены конструкторы класса Аггауьаяг.. риЫьс АггауЬьят() риЬ1гс Агтауыяг(1Со11есг1оп с) риЫгс Актауъгят(ьпг емкость) Таблица 24.4. Наиболее употребительные методы, определенные в классе АггауЬ1яс риЫгс чьгтиа1 чака Ас(к(капая(1со11есггоп с) Добавляет элементы из коллекции с а конец вызывающей коллекциитипалггауьзяк риЫьс чькгиа1 го Вкпагуэеагси(оЬ)ест ч) Выполняет поиск в вызывающей коллекции значения в Возвращает индекс найденного элемента.

Если искомое значение не найдено, возвращает отрицательное значение. Вызывающий список должен быть отсортнрован риЫьс ч1гтиа1 гпт Вьпатуяеагсп(оЬ)ест ат совр) Выполняет поиск в вызывающей коллекции значения ю используя для сравнения указанный метод совр. Возвращает индекс найденного элемента, Если искомое значение не найдено, возвращает отрицательное значение. Вызывающий список должен быть отсортнрован риЫьс ч1кгиа1 кпг Вкпагузеагсп(кпт ясаггтк(х, гпт соила, оЬ)ест 1Савратет совр) Выполняет поиск в вызывающей коллекции значения ю используя для сравнения указанный метод совр, Поиск на- чинается с алемента, указываемого по индексу я к яг кгг(х, и включает количество алементов, определяемых пара- метром соила.

Метод возвращает индекс найденного элемента. Если искомое значение не найдено, метод воз- вращает отрицательное значение. Вызывающий список должен быть отсортнрован риЫ1с чгггиа1 чога Соруто(Актау аг) Копирует содержимое вызывающей коллекции в массив як, который должен быть одномерным и совместимым по типу с элементамн коллекции риЫкс чьткиа1 чо1г( Копирует содержимое вызывающей коллекции в массоруто(лттау аг, 1пк якагсгк(к) сиа яг, начиная с элемента, указываемого по индексу я как сгк л. Целевой массив должен быть одномерным и совместимым по типу с элементами коллекцьм Первый конструктор создает пустую коллекцию класса Аггауььяк с нулевой первоначальной емкостью, Второй конструктор создает коллекцию типа Аггауььяк с количеством нницнализнруемых элементов, которое определяется параметром с и рав)го первоначальной емкости массива.

Третий конструктор создает коллекцию, имеющую указанную первоначальную емкость. В данном случае емкость обозначает размер базового массива, используемого для хранения элементов коллекции. Емкость коллекции типа Атгауауяк может увеличиваться автоматически по мере добавления в нее элементов. В классе АггауЬ1яс определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются.

Некоторые нз наиболее употребительных методов класса Аггауьаяк перечислены в табл. 24хй Коллекцию класса Аггауьаяк можно отсортировать, вызвав метод Воти () . В этом случае поиск в отсортированной коллекции с помощью метода Вкпагу5еагсп () становится еще более эффективным. Содержимое коллекции типа Агга уЬ1 яс можно также обратить, вызвав метод Вече гяе ( ) . Прсввввтке табл. 24.4 Опиеание риЫгс чэггиа1 чигс1 эигк(аг совр) 846 Часть 11, Библиотека СЗ риЫ1с чэгсиа1 чогб Сируто(впс ягс1бх, Лггау аг, эпк беяс1бх, эпс ссипс) риЫэс ясакгс Аггау11яс 51хе651ге (Вггауъ1як аг) риЫгс чггкиа1 Аггауъвяс Оеспапаещпс кбх, 1пк соила) риЫгс ч1гкиа1 1пс 1пбехой(оЬбесс ч) риЫус чвгсиа1 чигб 1пяеггэапде(эпг ягагг1бх, 1Со11ескгсп с) риЫ1с ч1гсиа1 эпк Ъаяс1пбех01(оЬ)есс ч) риЫгс ясас1с Аггауъ1яи Пеабоп1у(йггауъэяк яг) риЫгс ч1ггиа1 чокб Певочеаапде(эпс ббх, 1пс осипа) риЫгс чвгкия1 чимб Печегяе() риЫ1с чъгсиа1 чо1б Яечегяе(1пс ягагг1бх, 1пк ссипс) риыгс ч1ггиа1 чсэб эегаапсе(эпг ясагг1бх, 1Си11есс1ип с) риЫгс ч1гсиа1 чогб 5огк() риЫ1с чвггиа1 чигб эогс(эпг ясегг1бх, эпк осипа, ег совр) Копирует часть вызьвающей коллекции, начиная с эле- мента, указываемого по индексу я г я гггбх, и включая -количество элементов, определяемых параметрам осипа, в массив я г; начиная с элемента, указываемою по индексу без г1бх.

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее