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

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 191

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

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

Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.6. Так, если требуется определить, содержится ли ключ в коллекции типа Яогсеб11БГ, вызывается метод Сопса1пяйеу () . А если требуется выяснить, хранится ли конкретное значение в коллекции типа Яогсеб11БГ, вызывается метод Сопса1пяуа1ие () . Для перечисления содержимого коллекции типа яогсеб11БГ служит метод БеГЕпиыегасог (), возвращающий объект типа 1р1сг1опагуепппегасог. Напомним, что 101сГ1опагуЕппыегагог — это перечислитель, используемый для перечисления содержимого коллекции, в которой хранятся пары "ключ-значение".

И наконец, для получения синхронизированной оболочки, в которую заключается коллекция типа яоггебьдяг, вызывается метод яупсьгоп1геб () . Глава 2б. Комекции, перечислители и итераторы 943 Окончание табл. 25.6 Метод Описание рпЫ1с чаггпа1 Ьоо1 СопгаапяЧа1ое(оЬбесг ча1ие) Возвращает логическое значение сгое, если в вызывающей комекции типа Бсггес(ссяг СО- держится значение ча1ое, а иначе — логическое значение та1яе Возвращает значение, указываемое по индексу 1пс(ех Возвращает для вызывающей коллек- ции типа Богсес(Ь1яс перечислитель типа 1ртсС1опагуЕппвегагог Возвращает значение ключа, указываемое по ин- дексу асс(ех Возвращает комекцию типа Богсепьсяс с клю- чами, хранящимися в вызывающей коллекции типа Богсеж1яс Возвращает комекцию типа Боггес(Е1яг со зна- чениями, хранящимися в вызывающей комекции типа Богсес(1 тяс Возвращает индекс ключа )сеу. Если искомый ключ не обнаружен, возвращается значение -1 Возвращает индекс первого вхождения значения а а1 не в вызывающей комекции.

Если искомое зна- чение не обнаружено, возвращается значение -1 Устанавливает значение по индексу 1пс(ех рав- ным значению ча1ие рпЫас чаггпа1 оЬ>есг Оегву1пс(ех(1пг 1пс(ех) роЫас чаггоа1 1О1сС1опагуЕповегагог ОеСЕповегагог() роЫ1с ч1гсоа1 оЬбесс Оегкеу(1пг апс(ех) роЫ1с чаггпа1 1саяг Оегкеус1ЯС() роЫ1с чсггпа1 111яг ОеСЧа1ое) сяг () роЬ1ас чаггоа1 апг 1пс(ехОЙКеу (оЬ] есС )сеу) роЫас чсггоа1 апс.

1пс(ехогча1пе (оЬбесс ча1пе) роЬ11с чсггоа1 чоас( БеСВУ1пбех(апг 1пс)ех, оЬбесг ча1пе) рпЫ1с ягагас Боггес(1 сяг Бупспгопагес((Боггес(11яг 1аяг) Возвращает синхронизированный вариант комек- ции типа БогСеЖ1яС, передаваемой в качестве параметра 1аяс устанавливает значение свойства сарасасу рав- НЫМ ЗНаЧЕНИЮ СВОйСтВа Соопг роЫас чаггоа1 чо1с( тг1втоБ1ге() Ключ или значение можно получить разными способами. В частности, для получения значения по указанному индексу служит метод Оегву1пс(ех (), а для установки значения по указанному индексу — метод Бегну1пс)ех ( ) . Для извлечения ключа по указанному индексу вызывается метод ОеСКеу ( ), а для получения списка ключей по указанному индексу — метод Оегкеу11яг () .

Кроме того, для получения списка всех значений из коллекции служит метод Оесча1пеесяс () . Для получения индекса ключа вызывается метод 1пс(ехОСКеу (), а для получения индекса значения — метод 1пс(ехОСЧа1ое () . Безусловно, в классе БоггеЖ1яг также поддерживается индексатор, определяемый в интерфейсе 1всссаопагу и позволяющий устанавливать и получать значение по заданному ключу. В классе БогСес(Е1я С доступны также открытые свойства, определенные в тех интерфейсах, которые в нем реализуются. Как и в классе НаяпгаЬ1е, в данном классе особая роль принадлежит двум свойствам, Кеуя и Ча1оея, поскольку с их помощью можно получить доступную только для чтения коллекцию ключей или значений из 944 Часть (1. Библиотека С() коллекции типа Яогсебр уя с. Эти свойства определяются в интерфейсе 1Р1ссуопагу следующим образом.

рцЬ1гс ч1гсца1 1Со11ессгоп Кеуя ( Пег) ) рць11с ч1гсца1 1Со11есгьоп Уа1цея ( ЧеС) ) Порядок следования ключей и значений отражает порядок их расположения в коллекции типа Яогсесй,1яс. Аналогично коллекции типа Ная))га)э1е, пары "ключ — значение" сохраняются в коллекции типа Яогсеббаяс в форме структуры типа О1сссопагуепсгу, но, как правило, доступ к ключам и значениям осуществляется по отдельности с помощью методов и свойств, определенных в классе Яогсебрузс. В приведенном ниже примере программы демонстрируется применение класса ЯоггебП1зС.

Это переработанный и расширенный вариант предыдущего примера, демонстрировавшего применение класса Ная))га)э1е, вместо которого теперь используется класс ЯогСеб11яС. Глядя на результат выполнения этой программы, вы можете сами убедиться, что теперь список полученных значений оказывается отсортированным по заданному ключу.

Продемонстрировать применение класса Яогяеб11яС. ця1пч 5уягеьм ЦЯ1ПП ЯУЯСЕШ.СО11ЕСС1ОПЯ) с1авя Яьоешо ( ясасгс чо1б нагл() ( Создать отсортированный список. Яоггебсгяя я1 = пен Яоггебсгяо(); // Добавить элементы в список. я1.Абб("здание", "жилое помещение" ) 1 я1.лбб("автомашина", "транспортное средство"); я1.Абб("книга", "набор печатных алов"); я1.Асб("яблоко", "съедобный плод"); // Добавить элементы с помощью индексатора. я1("трактор" ) = "сельскохозяйственная машина"„.

О Получить коллекцию ключей. 1Со11есС1оп с = я1.Кеуя) // Использовать ключи для получения значений. Сопяо1е.Иг1сеььпе("Содержимое списка по индексатору."); Гбгеась(ягг1пд ягг ьп с) Сопяо1е.игггеглпе(ягг + ": " + в1(ягг)); Сопяо1е.иг1Сеьспе(); // Отобразить список, используя целочисленные индексы. Сопяо1е.иг1сесгпе("Содержимое списка по целочисленным индексам.")," Гог(гпс г=о) 1 < я1.Соцпс; 1++) Сопяо1е.иг1Сесгпе (я1 .Оегеутпбех (1) ); Сопяо1е.иггяеь1пе(); Показать целочисленные индексы элементов списка.

Глава 25. )(оллекции, первчиолители и итераторы 945 Солзо1е.нгьгеЬ1ле( Целочисленные индексы элементов списка.") гогеасб(волгло вгг ьл с) Солво1е.нгьгеЬьле (вбг э ": " + з1 . 1лбехбгхеу (вгг) ) ) ) Ниже приведен результат выполнения этой программы. Содержимое списка по индексатору. автомашина: транспортное средство здание: жилое помещение книга: набор печатных слов трактор: сельскохозяйственная машина яблоко: съедобный плод Содержимое списка по целочисленным индексам. транспортное средство жилое помещение набор печатных слов сельскохозяйственная машина съедобный плод Целочисленные индексы элементов списка. автомашина: О здание: 1 книга: 2 трактор: 3 яблоко: 4 Класс ЯЬас]с Как должно быть известно большинству читателей, стек представляет собой список, действующий по принципу "первым пришел — последним обслужен".

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

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

946 Часть!]. библиотека С() Таблица 25.7. Наиболее часто используемые методы, определенные в классе ЗЬас]с Метод Описание РиЬ11с ч1ггпа1 чо1с( С1еаг() Устанавливает свойство соспс равным нулю, очи- щая, по существу, стек Возвращает логическое значение сгпе, если объект оЬ7' содержится в вызывающем стеке, а иначе— логическое значение Га1ве Возвращает элемент, находящийся на вершине сте- ка, но не удаляет его Возвращает элемент, находящийся на вершине сте- ка, удаляя его по ходу дела Помещает объект оЬу в стек роЬ11с чдгспа1 Ьоо1 Сопга1пя(оЬбесг оЬУ) рпЬ11с чдггпа1 оЬ]есг Рее«() РпЬ11с ч1ггса1 оЬп'есг Рор() рсЬ11с ч1ггса1 чодс( Ризи(оЬ]есг оЬ7) рсЬ11с ягагйс Ягас« Яупсигопдвеб(Я«ас« ягасК) Возвращает синхронизированный вариант коллек- ции типа ясас«, передаваемой в качестве параме- тра ягасК Возвращает массив, содержащий копии элементов вызывающего стека рсЬ11с чдггса1 оЬЯесг[] Тодггау() В приведенном ниже примере программы создается стек, в который помещается несколько целых значений, а затем они извлекаются обратно из стека.

Продемонстрировать применение класса Ясас«. оя1пд Яуясеян ов1пс ЯуясеяьСо11ессьопя; с1авя ЯСас«Секо ( ягагьс чо1г( Яъонговъ(згас« яо, ьпо а) ( яг.гояъ(а)г Сопяо1е.итьгетйпе("Поместить в стек: Рояъ(" + а + ")"); Сопво1е.итяве("Содержимое стека: "); Гогеась(гпг 1 ъп вш Сопяо1е.итьге (1 Сопяо1е.итъгеъьпе (); ) воагьс чоха яъонгор(япас« яг) Сопяо1е.Х«1«е("Иявпечь нв стека: Рор -> ъпг а = (1пг) я«.Рор(); В классе Ясас«определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются.

Некоторые из наиболее часто используемых методов этого класса приведены в табл. 25.7. Эти методы обычно применяются следующим образом. Для того чтобы поместить объект на вершине стека, вызывается метод Ров и ( ) . А для того чтобы извлечь и удалить объект из вершины стека, вызывается метод Рор ( ) . Если же объект требуется только извлечь, но не удалить из вершины стека, то вызывается метод Рее«() . А если вызвать метод Рор () или Рее«(), когда вызывающий стек пуст, то сгенерируется исключение 1пча11с(Ореха«1опЕхсер11оп. Сопяо1е.иггсевлпе(а)г Сопяо1е.иггге("Содеркимое стека: ")г ГогеасЬ(гпс г гп яг) Сопяо1е.нг1се(г + " ")Г Сопяо1е.нггсеЬгпе()," ) ягаггс ноге магп() ( Бсаск вс = пеи Бсаск() ГогеасЬ(гпс г гп яс) Сопяо1е.игтге(г + " ")) Сопяо1е.нг1сеьгпе()г БЛоирияЛ(яс, 22)Г БЬоиРояЬ(яс, 65)Г БЬОирчяЬ(яс, 91)Г БЬоирор(яс)Г БЬоиРор(ЯГ)Г 5ЬоиРор(ЯГ)Г ггу ( БЬоигор(яс)г ) сагсь (1пна1гиорегаггопехсерггоп) ( сопяо1е.игггеьгпе("стек пуст.")г ) ) ) Ниже приведен результат выполнения этой программы.

Обратите внимание на то, как обрабатывается исключение 1пна11г)орегаг1опЕхсерг1оп, генерируемое при попытке извлечь элемент из пустого стека. Рор -> Стек пуст. Класс Диене Еще одной распространейной структурой данных является ачередгь действующая по принципу: первым пришел — первым обслужен. Это означает, что первым из очереди извлекается элемент, помещенный в нее первым. Очереди часто встречаются в Поместить в стек: Содержимое стека: Поместить в стек: Содержимое стека: Поместить в стек: Содержимое стека: Извлечь из стека: Содержимое стека: Извлечь из стека: Содержимое стека: Извлечь из стека: Содержимое стека: Извлечь из стека." РпяЬ(22) 22 РпяЬ(65) 65 22 РчяЬ(91) 91 65 22 Рор -> 91 65 22 Рор -> 65 22 Рор -> 22 Глава 25. Комекции, перечисяитеии и игерагоры 947 948 Часть И. Библиотека С() реальной жизни.

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

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

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее