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

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

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

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

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

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

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

Возвращаемый объект удаляется из очереди Добавляет обьект оЬ) в конец очереди рцЬ11с гг1ггца1 Ьоо1 Сопга1пз(оЬбесг оЬ)) РцЬ11с ч1ггца1 оЬ)есг Рес(цеце() рцЫ1с ч1гсоа1 гго1с) Епццеце(оЬбесг оЬ)) В первой форме конструктора создается пустая очередь с выбираемыми по умолчанию емкостью и коэффициентом роста 2,0. Во второй форме создается пустая очередь, первоначальный размер которой определяет емкость, задаваемая параметром сара сг Су, а коэффициент роста по умолчанию выбирается для нее равным 2,0.

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

Для того чтобы поместить объект в очередь, вызывается метод Епс(цеце ( ) . Если требуется извлечь и удалить первый объект из начала очереди, то вызывается метод Рег)цеце () . Если же требуется извлечь, но не удалять следующий объект из очереди, то вызывается метод Реех () . А если методы Рес(цеце () и РееК () вызываются, когда очередь пуста, то генерируется исключение 1пча11с(Орегаг1опЕхсерг1оп. Глава 25. Коллекции, первчислители и итераторы 949 Окончание табл. 25.5 Метод Описание риЬ11с чуггиа1 оЬбесг Рее)с О Возвращает объект из начала вызывающей очере- ди, но не удаляет его Возвращает синхронизированный вариант коллек- ции типа 0иеие, передаваемой в качестве параме- тра сгиеие Возвращает массив, который содержит копии эле- ментов из вызывающей очереди устанавливает значение свойства Сарас1су рав- нъ|м значению свойства соипс риЬ11с ясат1С Оиеие ЯупсЛгоп1вес) Яиеие стиеие) риЬ11с ч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е Хггсе(1 + " "): Сопво1е.нглсеъяпе() | ) всвглс чоди нвдп() ( ()иене с) = пеи Сиене(); тогевсП (1пс 1 Еп с() Сопво1е.игтге РЕ + " ") | Сопво1е.

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

Кроме того, в классе ВЯСАггау реализуется интерфейс 1С1опеаЬ1е. В классе ВЯЬАтгау определено несколько конструкторов. Так, с помощью приведенного ниже конструктора можно сконструировать объект типа ВЕЛА г та у из массива логических значений. риЬ1зо Взьатгау (Ьоо1 [] иа1иез) В данном случае каждый элемент массива иа1иез становится отдельным битом в коллекции. Это означает, что каждому элементу массива ча1иез соответствует отдельный бит в коллекции. Более того, порядок расположения элементов в массиве иа1иез сохраняется и в коллекции соответствующих им битов. Коллекцию типа ВЯСАггау можно также составить из массива байтов, используя следующий конструктор.

риЬ11о В1ПАттау (Ьусе ( ) Ьу без) Поместить в очередь Содержимое очереди: Поместить в очередь Содержимое очереди: Поместить в очередь Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Содержимое очереди: Извлечь из очереди: Епсрзеие (22) 22 Епсрзеие(65) 22 65 Епсрзеие(91) 22 65 91 Оесрзеие -> 22 65 91 Оесрзеие -> 65 91 Оесрзеие -> 91 Глава 25.

)(омекции, перечислители и итераторы 951 риЫьс В1ГАггау(1пс[ ] иа1иея) В данном случае элемент иа1иея[О] обозначает первые 32 бита, элемент иа1иея [1] — вторые 32 бита и т.д. С помощью следующего конструктора можно составить коллекцию типа Влгдгга у, указав ее конкретный размер: риЫьс Вгвхггау (ьпг 1епдсл) где 1епрСЬ обозначает количество битов в коллекции, которые инициализируются логическим значением Га1яе. В приведенном ниже конструкторе можно указать не только размер коллекции, но и первоначальное значение составляющих ее битов. риЫьс Вьслггау(ьпс 1епиГИ, Ьио1 г(етаи1суа1ие) В данном случае все биты в коллекции инициализируются значением с(еГаи1гуа1ие, передаваемым конструктору в качестве параметра. И наконец, новую коллекцию типа В1САггау можно создать из уже существующей, используя следующий конструктор.

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

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

Методы, определенные в классе ВЕСАггау Метод Описание риЬ11с В1САггау Апг[(В1ЬАггау иа1ие) Выполняет операцию логического умножения И битов вызывающего объекта и комекции т а1ие. Возвращает комекцию типа ВВСАггау, содержащую результат Возвращает значение бита, указываемого по индексу зпгтех Выполняет операцию поразрядного логического отрицания НЕ битов вызывающей комекции и возвращаЕт КОМЕКцИЮ тИПа В1САггау, СОдЕржащуЮ рЕЗуЛЬтат риЫ1с Ьоо1 Век (1пг 1пс(ех) риЬ11с В1САггау Ног О Здесь битами в коллекции становится уже целый их набор из массива Ьугея, причем элемент Ьугея [О] обозначает первые 8 битов, элемент ЬуСея [1] — вторые 8 битов и т.д.

Аналогично, коллекцию типа Взгдггау можно составить из массива целочисленных значений, используя приведенный ниже конструктор. 952 Часть П. Библиотека С() Окончание табл. 25.9 Описание Метод рив11с В1гйггау Ог(ВЬГАггау иа1ие) В классе в 1г Агта у определяе гся т люке собственное свойство, помимо тех, что указаны в интерфейсах, которые в нем реализуются. риЫгс Ьпс ьепчгь ( десг яес; Свойство ЬеппСЬ позволяет установить или получить количество битов в коллекции.

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

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

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

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