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

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

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

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

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

Для того чтобы поместить объект на вершине стека, вызывается метод Рпзп () . А для того чтобы извлечь и удалить объект из вершины стека, вызывается метод Рор () . Если же объект требуется только извлечь, ио ие удалить из вершины стека, то вызывается метод РееМ () . А если вызвать метод Рор () или Рее)г (), когда вызывающий стек пуст, то сгеиерируется исключение 1пча1160регагвопехсерс1сп. Сопяо1е.игаса(1 + " ")г Сопяо1е.ыггпе11пз()г ) ятаттс то1г( Мвтп() ( Бпасх яп = пем Бтасх() Гогеаси(тпт 1 тп ят) Сопяо1е.Игаса(1 + " "); Сопяо1е.

Иг1те11пе (); БиомРпяь(яп, 22); Бьомрияа(ят, б5): Бломрпял(ят, 91); БаотРор (ят) л ЯьомРор (ят)( БвомРор(яя)л сту ( БьомРор(ят)( ) пасса (1пча11г(орегас1опвксерс1оп) ( Сопяо1е.Игттеьтпе("Стек пуст.")," ) Ниже приведен результат выполнения этой программы. Обратите внимание на то, как обрабатывается исключение тпча11бОрега11опьхсер11оп, генерируемое при попытке извлечь элемент из пустого стека. Рор -> Стек пуст. Класс Дие(зе Еще одной распространеиной структурой данных является очередь, действующая по принципу: первым пришел — первым обслужен.

Это означает, что первым из очереди извлекается элемент, помещенный в нее перва(м. Очереди часто встречаются в реальной жизни. Многим из нас нередко приходилось стоять в очередях к кассе в банке, магазине или столовой. В программировании очереди применяются для хранения таких элементов, как процессы, выполняющиеся в данный момент в системе, списки приостановленных транзакций в базе данных или пакеты данных, полученные по Интернету. Кроме того, очереди нередко применяются в области имитационного моделирования.

Поместить з стек: Содержимое стека." Поместить в стек: Содержимое стека: Поместить з стек: Содержимое стека: Извлечь из стека: Содержимое стека: Извлечь мз стека: Содержимое стека: Извлечь мз стека: Содержимое стека: Извлечь мз стека: Рпяи(22) 22 Рпяь(б5) б5 22 Рсяи(91) 91 65 22 Рор -> 91 б5 22 Рор -> б5 22 Рор -> 22 Глава 24. Коллекции, леречислители и итераторы 889 860 Часть П. Библиотека СЗ Класс коллекции, поддерживающий очередь, носит название спеце.

В ием реализуются интерфейсы 1СС11есСРоп, ХЕпцюегаЬ1е и 1С1опеаЬ1е. Этот класс создает динамическую коллекцию, которая расширяется, если в ией необходимо хранить вводимые элементы. Так, если в очереди требуется свободное место, ее размер увеличивается на коэффициент роста, который по умолчанию равен 2,0. В классе Оцеце определяются приведенные ниже конструкторы.

риЬ11с Соеие() ровьъс Соеое (ьпС емкость) роЬ11с Спеце (спС емкость, 11оаС коэффициент роста) рпЬ11с Счеие (1Со11ескьоп с) Таблица 24.8. Наиболее употребительные методы, определенные а классе ()цеце Описание Метод риЬ11с чъгСпа1 чота С1еаг() Устанавливает свойство соппс равным нулю, очищая, по существу, очередь риЬ11с ч1скиа1 Ьоо1 Сопеааоз(оЬ)есС ч) Возвращает логическое значение сгпе, если объект ч со- держится а вызывающей очереди, в противном случае— логическое значение Га1зе риьььс чъгсиа1 оЬбесс пециече() Возвращает объект из начала вызывающей очереди.

Возвращаемый объект удаляется из очереди рпьььс чсгСиа1 чака Епцпеие(оЬбесС ч) Добавляет объект ч в конец очереди риЬ11с чьгсиа1 оЬбесс РееК() Возвращает обьекг из начала вызывающей очереди, но не удаляет его рив11с зкаС1с ()чеие 5упспгопьсео(боече д) Возвращает синхронизированный вариант коллекции типа ачепе, передаваемой в качестве параметра и риЬ11с чсгспа1 оЬбесс[) тоаггау() Возвращает массив, который содержит копии элементов из вызывающей очереди рпЬ11с чьгСиа1 чо1О тт1ито51те() Устанавливает значение свойства сарасзсу равным зна- чению свойства соппс В первой форме конструктора создается пустая очередь с первоначальной емкостью 32 и выбираемым по умолчанию коэффициентом роста 2,0.

Во второй форме создается пустая очередь, первоначальный размер которой' определяет емкость, а коэффициент роста по умолчанию выбирается для иее равным 2,0. В третьей форме допускается ука- ' зывать ие только емкость, ио и коэффициент роста создаваемой очереди (в пределах от 1,0 до 10,0). И в четвертой форме создается очередь, состоящая из элементов указываемой коллекции с. Ее первоначальная емкость равна количеству указанных элементов, а коэффициент роста по умолчанию выбирается для иее равным 2,0. В классе Опепе определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в ием реализуются.

Некоторые из наиболее употребительных методов этого класса перечислены в табл. 24.8. Эти методы обычно применяются следующим образом. Для того чтобы поместить объект в очередь, вызывается метод епс[пепе И. Если требуется извлечь и удалить первый объект из начала очереди, то вызывается метод пес[цеце () . Если же требуется извлечь, ио ие удалять следующий объект из очереди, то вызывается метод Рее)с () . А если методы пес)цеце () и Рее)с () вызываются, когда очередь пуста, то генерируется исключение 1пча11с[ОрегаС1опкхсерС1оп. Глава 24, Коллекции, перечислители и итераторы 861 В приведенном ниже примере программы демонстрируется применение класса (2пене.

// Продемонстрировать применение класса Очеие. ов1по Буясежт ов1пЧ Яувсеи.Со11есг1опят с1авя ()неоеоеио ( всасгс чо1О ЯнонкпЧ(Поем Ч, гпс а) ( Ч.Епчоене(а)т Сопво1е.йггсе11пе("Поместить з очередь: Епчпепе(" + а ь ")")т Сопво1е.йггсе("Содержимое очереди: ")с тогеас)с(1пс г 1п Ч) Сопво1е.йг1Ге(г + " ")) Сопяо1е.йггсепапе()) вгаггс чогс( 5)сонпеч(пнеие ч) ( сопяо1е.йг1ге("извлечь из очереди: Оечоече -> ")т гпс а = (апс) с(.печоепе()т Сопво1е.йггсе11пе(а) т Сопво1е.йг1ге("Содержимое очереди: ")т гогеас)с(1пг г гп Ч) Сопво1е.йг(се(1 + " ")' Сопво1е.йггсепапе()т ясасгс чо1с( Ма1п() ( ()пене Ч = пен Опепе() гогеас)т(1пс г 1п Ч) Сопяо1е.йг1Ге(1 + " ")т Сопво1е.

йг1Ге11пе () Бнонвпч(Ч, 22); БпонвпЧ(Ч, 65); 5)сонвпЧ(Ч, 91)т ЯП ОеЧ(Ч)т ЯноноеЧ(Ч)) яооноеч(ч)т ггу ( яноьпеЧ(Ч)т ) пасс)т (1пча11с(орегасгопЕхсерсгоп) ( сопяо1е.йг1гевапе("очередь пуста.")! ) ) 662 Часть П. Библиотека С№ Эта программа дает следующий результат: Оециеие -> Очередь пуста. Хранение отдельных битов в классе коллекции вх~Аггау Класс В1глггау служит для хранения отдельных битов в коллекции. А поскольку в коллекции этого класса хранятся биты, а не объекты, то своими возможностями он отличается от классов других коллекций. Тем не менее в классе В1гАггау реализуются интерфейсы 1Со11есг№оп и 1ЕпимегаЬ1е как основополагающие элементы поддержки всех типов коллекций. Кроме того, в классе В1гАггау реализуется интерфейс 1С1опеаЬ1е. В классе В1гдггау определено несколько конструкторов. Так, с помощью приведенного ниже конструктора можно сконструировать объект типа в№гАггау из массива логических значений.

риЬ11с Вкглггау(Ьоо1[] Ьхгв) В данном случае каждый элемент массива Ь№гз становится отдельным битом в коллекции. Это означает, что каждому элементу массива ь1 гэ соответствует отдельный бит в коллекции. Более того, порядок расположения элементов в массиве ЬЕ сэ сохраняется и в коллекции. соответствующих им битов. коллекцию типа в1гдггау можно также составить из массива байтов, используя следующий конструктор: риьг№с Вггхггау (ьуге[! ьхсл) Здесь битами в коллекции становится уже целый набор битов, причем элемент Ь1 г з [ О ! обозначает первые 8 битов, элемент Ь1 гз [1] — вторые 8 битов и т.д. Аналогично, коллекцию типа В1гАггау можно составить из массива целочисленных значений, используя приведенный ниже конструктор.

риьг№с В1глггау(тпг( ) Ькга) В данном случае элемент ЬЕ гз [О] обозначает первые 32 бита, элемент ьугз [1!— вторые 32 бита и т.д. С помощью следующего конструктора можно составить коллекцию типа В№гдггау, указав ее конкретный размер: риЬ1№с ВггАггау(1пг размер) Поместить в очередь Содержимое очереди: Поместить в очередь Содержимое очереди: Поместить в очерель Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Епциеие(22) 22 Епциеие(65) 22 65 Епяиеие(91) 22 65 91 Оес(иеие -> 22 65 91 Оециеие -> 65 91 Оециеие -> 91 Глава 24.)(оллакции, перечисли)ели и итераторы 863 рсЬ11с В1ГКггау(1пг размер, Ьоо1 ч) В данном случае все биты в коллекции инициализируются значением и, передаваемым конструктору в качестве параметра.

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

Методы этого класса приаедсны в табл. 24.9. Обратите внимание на то, что в классе В1САггау не поддерживается метод Бупспгоп1гег) () . Это означает, что для коллекций данного класса синхронизированная оболочка недоступна, а свойство 1эзупсьгопъзег) всегда имеет логическое значение га1эе.

Тем не менее для управления доступом к коллекции типа В1гдггау ее можно синхронизировать для обьекта, предоставляемого упоминавшимся ранее свойством яупсноос. )вблица 24.9. Методы, определенные в классе вйсдхгау Описание Метод рэЫ1с В1ГАггау Апг)(В1ГКггау Ьа) Выполняет операцию логического умножения И битов вызывающего объекта и коллекции ьа. Возвращает коллекцию типа в1гкггау, содержащую результат риЫ1с Ьоо1 Пег (ьпг уг(х) Возвращает значение бита, указываемого по индексу уг)х рчЫьс Вгглггау Ног() Выполняет операцию поразрядного логического отри- цания НЕ битов вызывающей коллекции и возвращает коллекцию типа в1слггау, содержащую результат Выполняет операцию логического сложения ИЛИ битов вызывающего объекта и коллекции ьа.

Возвращает коллекцию типа вг скггау, содержащую результат риЫ1с Вьслггау Ог (Вьслггау Ьа) риЫьс чолн Бес (ьпс Хсх, Ьоо1 ч) Устанавливает бит, указываемый по индексу дг)х, рав- ным значению ч риЬ11с чогг) ЗеГК11(Ьоо1 ч) риЫ1с В1САггау Хог(В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
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее