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

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

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

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

Эти свойства приведены ниже. Свойство риЫгс 1пь Сарас1су ( дес; яес) Описание Получает или устанавливает емкость вызывающей коллекции в виде отсо- ртированного списка Получает метод сравнения для вызы- вающего списка Получает комекцию ключей Получает комекцию значений риЫТс 1Соврагег<ТК> Соврагег ( десг риЬ11с 1ЬСяс<ТК> Кеув ( брег) ] риЬ11с 1ЕТвг<ТЧ> Ча1иея ( дег; ) И наконец, в классе яогсег(11яг<ткеу, тча1ие> реализуется приведенный ниже индексатор, определенный в интерфейсе 1Р1ссзопагу<ТКеу, ТЧа1ие>.

риЬ11с ТЧа1ие ГЬ1я(тнеу Кеу) ( Чесг вес; ) Этот ицдексатор служит для получения и установки значения элемента коллекции, а также для добавления в коллекцию нового элемента. Но в данном случае в качестве индекса служит ключ элемента, а не сам индекс. В приведенном ниже примере демонстрируется применение класса яоггег(Ыяг<ТКеу, ТЧа1ие>. Это еще один измененный вариант представленного Глава 25. Коллекции, перечисаитеви и итераторы 977 ранее примера базы данных работников. В данном варианте база данных хранится в коллекции типа Богеебифвт. // Продемонстрировать применение класса обобщенной О коллекции БогсеспЛвс<ткеу, туа1це>.

цзгпч Бувгещ; цв1пд Бувгею.со11есстопв.оепег1с; с1азз Бепзвбещо ( всат1с чогб Ма1п() ( с'! Создать коллекцию в виде отсортированного списка для хранения имен и фамилий работников и их зарплаты. БоггебЬгвг<вггтпд, боцще> в1 пен Боггебптвс<всгьпч, боцЬ1е>(); с'с' Добавить элементы в коллекцию. в1.АсЫ("Батлер, Джон", 73000); в1.Абс((" Шварц, Сара", 59000); *1.Абб("Пайк, Томас", 45000)т в1.АсЫ("Фрэнк, Эд", 99000)т Получить коллекцию ключей, т.е. фамилий и имен.

1со11есггоп<вггтпд> с = в1.Кеув; О Использовать ключи лля получения значений, т.е. зарплаты. гогеасп(всгтпч вгг 1п с) Сопво1е.ыггге51пе("(О), зарплата: (1:С)", всг, в1(згг])г Сопво1е.игьгеьвпе(); Ниже приведен результат выполнения этой программы. Батлер, Джон, зарплата: 573,000.00 Пайк, Томас, зарплата: 545,000.00 Фрэнк, Эд, зарплата: 599,000.00 Шварц, Сара, зарплата: 559,000.00 Как видите, список работников и их зарплаты отсортированы по ключу, в качестве которого в данном случае служит фамилия и имя работника. Класс ВЬас)с<Т> Класс Бсас)с<Т> является обобщенным эквивалентом класса необобщенной коллекции Бтасю В нем поддерживается стек в виде списка, действующего по принципу "первым пришел — последним обслужен".

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

Коллекция класса Ббас)с<Т> имеет динамический характер, расширяясь по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться. В классе 5 сап)с<т> определяются следующие конструкторы. 978 Часть П. Библиотека С№ риЬ11с Ягасх() рпЬ11с ЯгасК(гпс сарастсу) рпЬ11с ягасК(1Еппиегаще<Т> со11есгтоп) В первой форме конструктора создается пустой стек с выбираемой по умолчанию первоначальной емкостью, а во второй форме — пустой стек, первоначальный размер которого определяет параметр сара с1 Гу. И в третьей форме создается стек, содержащий элементы коллекции, определяемой параметром со11ессцоп.

Его первоначальная емкость равна количеству указанных элементов. В классе Ятасх<Т> определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются, а также в интерфейсе 1Со11ест1оп<Т>. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.20. Как и в классе Ясасх, эти методы обычно применяются следующим образом.

Для того чтобы поместить объект на вершине стека, вызывается метод Рпяп () . А для того чтобы извлечь и удалить объект из вершины стека, вызывается метод Рор ( ) . Если же объект требуется только извлечь, но не удалить из вершины стека, то вызывается метод Реех () . А если вызвать метод Рор () или РееК (), когда вызывающий стек пуст, то сгенерируется исключение 1пча11<(Орегат1опЕхсерт1оп. Таблица 25.20. Методы, определенные в к(ассе ВЬас)с<т> Метод Описание риЫТс Т Реех() Возвращает элемент, находящийся на вершине стека, но не удаляет его Возвращает элемент, находящийся на вершине стека, удаляя его в процессе работы Помещает элемент 1 Сев В СтЕк Возвращает массив, содержащий копии элементов вы- зывающего стека Сокращает избыточную емкость вызывающей коллекции в виде стека риЫТс Т Рор() рнЫ1с чоьц Рпяп(Т лги) риЬ11с Т[] Тодггау() рдЬ11с чо1<( Тг1вЕхсеяв() О продемонстрировать применение класса Ясасх<т>.

иятпд Яуягеи; нягпд Яуягеи.оо11есгтопв.сепех1сг с1аяя ОепЯСасхоеио ( ягагтс чоха Ма1п () ( ягаск<всгтпд> вс = пен ясаск<всггпч>() вС.РпяЬ("один" )' вс.рнвЬ("два")г яС.РияЬ("три")г вС.РпяЬ("четыре" ); яС.РовЬ("пять"); ниг1е(яг.ооепс > 0) ( ясггпд ясг = вс.Рор()г В приведенном ниже примере программы демонстрируется применение класса Ягасх<Т>. Глава 25. Коллекции, перечислители и итераторы 979 сопво1е.

нгьте (втт + " ) Сопво1е. Хт1теъьпе (); ) ) При выполнении этой программы получается следующий результат. пять четыре трн два один Класс (2иеце<Т> Класс Оиеие<Т> является обобщенным эквивалентом класса необобщенной коллекции Опеые. В нем поддерживается очередь в виде списка, действующего по принципу "первым пришел — первым обслужен".

В этом классе реализуются интерфейсы 1Со11есслоп, 1ЕпигвегаЬ1е и 1ЕппыегаЬ1е<Т>. Кроме того, в классе Япепе<Т> непосредственно реализуются методы С1еаг (), Сопсаспз () и СоруТо (), определенные в интерфейсе 1со11ппгьпп<т>. А методы дг(г) () и негвпте () в этом классе не поддерживаются, как, впрочем, и свойство 1зпеас(Ов1у.

Коллекция класса Опепе<Т> имеет динамический характер, расширяясь по мере необходимости, чтобы вместить все элементы, которые должны храниться в ней. В классе Опепе<Т> определяются следующие конструкторы. рвЫтс Явепе () рпЫтс Япепе(тпт сарасясу) рвЫьс свече (1впиыетаЫе<т> сп11ессзоп) В первой форме конструктора создается пустая очередь с выбираемой по умолчанию первоначальной емкостью, а во второй форме — пустая очередь, первоначальный размер которой определяет параметр сара од Су.

И в третьей форме создается очередь, содержащая элементы коллекции, определяемой параметром со11есгдоп. Ее первоначальная емкость равна количеству указанных элементов. В классе Опепе<Т> определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются, а также в интерфейсе 1Со11есг1оп<Т>. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.21. Как и в классе баеве, эти методы обычно применяются следующим образом. Для того чтобы поместить объект в очередь, вызывается метод Епцпепе () .

Если требуется извлечь и удалить первый объект из начала очереди, то вызывается метод Оеоиепе () . Если же требуется извлечь, но Не удалять следующий объект из очереди, то вызывается метод Реек () . А если методы Рег)пепе () и Реек () вызываются, когда очередь пуста, то генерируется исключение 1пча11с(Орегаг1опЕхсерг1оп. Таблица 25.21. Методы, определенные в классе Яиеце<Т> Описание Метод рпЬ11с Т пес(пепе () Возвращает объект из начала вызывающей очереди.

Возвращаемый объект удаляется из очереди рпбуьс чо1с( епг(пепе (т Тгет) добавляет элемент Тгегя в конец очереди риЬ11с Т Рее)г() Возвращает элемент из начала вызывающей очереди, но не удаляет его 9ВО Часть П. Библиотека С() Окончание табл. 25.21 Описание Метод рпЫТс чсггпа1 Т[) Тодггау() рпЬ11с чобб ТгбвЕхсеяя() Возвращает массив, который содержит копии эле- ментов из вызывающей очереди Сокращает избыточную емкость вызывающей кол- лекции в виде очереди В приведенном ниже примере демонстрируется применение класса О аепе<т>. /! Продемонстрировать применение класса Яиепе<Т>. пяьпд Буясев; пя1пс Яуясев.со11есьгопя.оепег1се с1аяя Оепопепепево ягаггс чоха Маьп() Опеое<бопвге> ч = пен Опепе<бопЬ1е>() Ч.ЕпЧпепе(98,6); Ч.Епопепе(212.0)7 Ч.Епппепе(32.0)~ с(.ЕпсГ>епе(3.1416) 1 бооЬ1е яов = О.О; Сопяо1е.нг1се("Очередь содержит: ")7 нп11е(Ч.Соппс > 0) ( бопЪ1е ча1 = Ч.

Оеопепе () 1 Сопяо1е.нггсе(ча1 + япв е= ча1; Сопяо1е.нгвсеълпе("цпитоговая сумма равна " + япв); ) Вот к какому результату приводит выполнение этой программы. Очередь содержит: 98.6 212 32 3.1416 Итоговая сумма равна 345.7416 Класс НааЬБес<Т> В классе НаяЛБег<Т> поддерживается коллекция, реализующая множество. Для хранения элементов этого множества в нем используется хеш-таблица. В классе наяьБеь<т> реализуются интерфейсы 1со11ессгоп<т>, 1Бес<т>, 1епивегаЫе, 1ЕпсвегаЫе<Т>, 1Бегда11хаЫе, а также 1Реяегга1ьхаггопСа11Ьасуь В коллекции типа На яЬБег<Т> реализуется множество, все элементы которого являются уникальными. Иными словами, дубликаты в таком множестве не допускаются.

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

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

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

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