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

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

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

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

В приведенном ниже конструкторе можно указать не только размер коллекции, но и первоначальное значение составляющих ее битов. 864 Часть П. Библиотека С№ Свойство ВепоСЬ позволяет установить или получить количество битов в коллекции. Следовательно, оно возвращает такое же значение, как и стандартное свойство Соцпс, определяемое для всех коллекций. В отличие от свойства Соцпг свойство ВепоСЬ доступно не только для чтения, но и для записи, а значит, с его помощью можно изменить размер коллекции типа В1САггау. Так, при сокращении коллекции типа В№сдггау лишние биты усекаются, начиная со старшего разряда.

А при расширении коллекции типа Вггдггау дополнительные биты, имеющие логическое значение Та1яе, вводятся в коллекцию, начиная с того же старшего разряда. Кроме тото, в классе В1САггау определяется следующий индексатор: рцвттс Ьоо1 Спгв [Тпг Тпх] ( арест вест ) С помощью этого индексатора можно получать или устанавливать значение элемента. В приведенном ниже примере демонстрируется применение класса В1САггау. // Продемонстрировать применение класса ВТСАггау. плыло зувСеет цяьпд зуягеи.Со11есС1опят с1авя ВАОеио ( рцЬ11с вгаСТс чоьд 5понвкгв(всг1пд геи, В1САггау ЬТСв) ( Сопяо1е.нг1СеЬгпе(геи)т Гог(глг 1=07 1 < Ь1ся.СОцПС; 1+Ь) Сопяо1е.игасе("[О, -б) ", Ь|гв(г])т Сопяо1е. ХС1ге11пе (" 1п" ) ) вгаггс чоьд Ма1п() ( 81САггау Ьа = пен ВТСАггау(8)т Ьусе[] Ь = ( бт )т Втгкггау Ьа2 = пеи 51САггау(Ь)т зпонВ1гя("Исходное содержимое коллекции Ьа:", Ьа)т Ьа Ьа.иог () т 5ЬонВТСв("Содержимое коллекции Ьа " + "после логической операции НОТ:", Ьа)т 5пои81гя("Содержимое коллекции Ьа2:", Ьа2)т 81САггау Ьаз = Ьа.Хог(Ьа2)т зпонВТСв("Результат логической операции Ьа Хок Ьа2:", Ьаз)т ) Эта программа дает следующий результат: Исходное содержимое коллекции Ьа: Га1ве Га1яе Га1ве Га1ве Га1яе Га1ве Га1яе Га1яе Содержимое коллекции Ьа после логической операции НОТ: Тгце Тгце Тгце Тгце Тгце Тгце Тгце Тгце Глава 24.

Коллекции, перечислнтели н нтераторн 865 Содержимое коллекции Ьа2". тгце тгце Ра1ве Ра1ве Ра1яе Га1ве тгце Ра1ве Результат логической операции Ьа ХОП Ьа2: Ра1яе Ра1яе тгие тгце тгие тгие Ра1ве тгце Специальные коллекции В среде .НЕТ Ргашешогк предусмотрен ряд специальных коллекций, оптимизированных для работы с данными конкретного типа или для их обработки особым образом. Классы этих необобщенных коллекций определены в пространстве имен Яувгею. СО11есС1опв.Яресга1ггетГ и перечислены ниже.

Класс специальной коллекции Описание Со11ест1опяпт11 Нуьг1ОО1ст1опагу Содержит фабричные методы для создания коллекций Предназначен для коллекций, в которых для хранения не- большого количества пар "ключ-значение" используется класс ЬавГОгссгопагУ.

При превышении коллекцией определенного размера для хранения в ней элементов автоматически использу- ется класс наяьгаьте 11ятс1сс1опагу Предназначен для коллекций, в которых для хранения пар "ключ-значение" используется связный список. Такие коллекции рекомендуются только для хранения небольшого количества эле- ментов Наиеуа1цесо11есс1оп Предназначен для отсортированных коллекций, в которых хранят- ся пары "ключ-значение", причем и ключ, и значение относятся к типу вгг1по Предназначен для коллекций, в которых хранятся индексируемые пары "ключ-значение" Предназначен для коллекций, оптимизированных для хранения символьных строк Предназначен для хеш-таблиц, в которых хранятся пары "ключ- значение", причем и ключ, и значение относятся к типу ягг1пд Огпегепр1сттопагу Ягг1пчсо11есг1оп ятг1пдртсс1опагу Кроме того, в пространстве имен Яуягеш.

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

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

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

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

Со11естгопз. Сепег1с определен целый ряд интерфейсов обобщенных коллекций, имеющих соответствующие аналоги среди интерфейсов необобщенных коллекций. Все эти интерфейсы сведены в табл. 24.10. Таблица 24.10. Интерфейсы обобщенных коллекций Интерфейс Описание 1Со11есс1оп<Т> 1соврагег<т> Определяет основополагающие свойства обобщенных коллекций Определяет обобщенный метод совраге () для сравнения объектов, хранящихся в коллекции Определяет обобщенную коллекцию, состоящую нз пар "ключ- значение" гптссгопагу<тк, тч> 1хпивегаЬ1е<Т> Определяет обобщенный метод аесхпивегасог (), предоставляющий перечнспнтепь для любого класса коллекции Предоставляет методы, позволяющие получать содержимое коллек- ции по очереди Сравнивает даа объекта на предмет равенства Определяет обобщенную коллекцию, доступ к которой можно получить с помощью нндексатора Впивегагог<Т> 1ВЧиа11Сусоврагег<т> 111зс<т> гпс сорос ( десг ) Ьоо1 1авеас(пп1у ( десг Свойство Соипг содержит ряд элементов, хранящихся в данный момент в коллекции.

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

Интерфейс 1СС11есссоп<т> является обобщенным вариантом необобщенного интерфейса 1СС11есс1оп, хотя между ними имеются некоторые отличия. Итак, в интерфейсе 1Со11есттоп<т> определены следующие свойства: Глава 24. Коллекции, перечиспигепи к ктераторы 867 Метод чотп АПС(Т оЬУ) Описание Добавляет объект оЬУ в вызывающую коллекцию.

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

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