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

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

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

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

Порядок следования элементов во множестве не указывается. В классе НаяЬБег<Т> определяется полный набор операций с множеством, определенных в интерфейсе 13ег<Т>, включая пересечение, объединение и разноименносгь. Благодаря этому класс наяьвес<т> оказывается идеальным средством для работы с множествами Объектов, когда порядок расположения элементов во множестве особого значения не имеет. Коллекция типа Глава 2Б. ((оллекции, перечислители и итвраторы 981 НавЬБеС<Т> имеет динамический характер и расширяется по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться. Ниже перечислены наиболее употребительные конструкторы, определенные в классе НавЬЯес<т>.

рнЫ1с НавЬЯег() рнЫгс НаяЬяег(1ЕпниегаЬ1е<т> сп11есг1пп) рнЫгс НаяЬБег(1ЕЧпа11Суспираге сеирагег) рнЫ1с Наяивег (1ЕпниегаЫе<Т> сп11есггеп, 1ЕЧна11Суспираге спирагег) В первой форме конструктора создается пустое множество, а во второй форме— множество, состоящее из элементов указываемой коллекции со21есглоп. В третьей форме конструктора допускается указывать способ сравнения с помощью параметра сотрагег. А в четвертой форме создается множество, состоящее из элементов указываемой коллекции со11есг1оп, и используется заданный способ сравнения соирагег; Имеется также пятая форма конструктора данного класса, в которой допускается инициализировать множество последовательно упорядоченными данными.

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

с'у продемонстрировать применение класса наяьяес<т>. пя1пд Яувсекн пасло Буягеи.со11есС1ппя.оепег1с! с1аяя НаяЬБегоеео ( ягаггс чо1д ЯЬои(ягггпо ияо, НаяЬЯеС<сЬаг> яеС) ( СЕПЯО1Е.ИГ1СЕ (ИЯБ) 1 ГогеасЬ(сЬаг сЬ 1п яес) Сппяо1е.иг1Се(сЬ + " ") Сопяо1е.нгсгеььПЕ() Г ) ягаггс чогд Маги () ( НаяЬЯеС<сЬаг> яеСА = пеи НаяЬЯеС<сЬаг>()) НавЬБег<сЬаг> яесВ = пен НаяЬЯеС<сЬаг>(); яеСА.Адд('А'); яеСА.Адд('В'); яеСА.Адд('С'); яеСВ.Аед('С')Г веСВ.Адд('О'); 982 Часть 11. Библиотека С(т Бегв.лг)В('Е'); Япон("Исходное содержимое множества Беол: ", БеГА)г Япон("Исходное содержимое множества БеСВ: ", БеСВ); БЕСА.

Я)азиест1ссхсерСИ1ГЬ (БЕГВ) г япон("содерж>зное множества ветл после " т "разноименности со мнояеством Бега: ", БеСА); БЕГА.Опгопнгсп(зеСВ)г Япон("Содержимое множества БетА после " + "объединения со множеством ЯеСВ: ", Бегл)) Беол.кхсерпнгпп(ББСВ)г Япон("Содержимое множества Бегл после " "вычитания из множества БеСВ: ", Бесл); Сопзо1е.нг1геъьпе(); Ниже приведен результат выполнения программы из данного примера. Исходное содержимое множества ветл: А В С исходное содержимое множества Бесе: С О е Содержимое множества БЕСА после разнонменности со множеством ЯеСВ: А В О Е Содержимое множества Бегл после объединения со множеством Яесэ".

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

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

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

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

Помимо свойств, определенных в интерфейсах, которые реализуются в классе Богсес(аес<Т>, в него введены дополнительные свойства, приведенные ниже. роп1гс тсотрагег<Т> Соирагег ( Сеш роЫ1с Т Нах ( Бес; роЫгс Т Мьп ( Бес; Параллельные коллекции В версию 4.0 среды .НЕТ Ргатетчог)с добавлено новое пространство имен Бузгеы. Со11есг1опз . Сопспггепг. Оно содержит коллекции, которые являются потокобезопасными и специально предназначены для параллельного программирования. Это означает, что они могут безопасно использоваться в многопоточной программе, где возможен одновременный доступ к коллекции со стороны двух или больше параллельно исполняемых потоков.

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

В качестве примера применения класса Богсес(вес<Т> на практике просто замените обозначение нав)тэес на Боггес(Бег в исходном коде программы из предыдущего подраздела, посвященного коллекциям типа Наз)тБес<Т>. 984 Часть 1).

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

Первая задача производит элементы коллекции, а другая потребляет их.) Метод Тгу)(бб () пытается добавить элемент в коллекцию, а метод ТгуТахе () — удалить элемент из коллекции. Ниже приведены формы объявления обоих методов. Ьоо1 Тгуябб(Т 1сев) Ьоо1 ТгуТахе(оис Т ТГев) риЫ1с риЫгс риЫ1с риЫТс В1осК1пдоо11ессгоп() В1исхьпдои11есс1оп (Тпс Ьоипбебоарасз Гу) В1осхьпдсо11есггдп(1Ргобисегсопявпегсо11есгьоп<т> со11есгбоп) В1осхьпдоо11ессгоп(1Ргобисегсопяивегоо11есс1оп<Т> са11есг1оп, 1пс Ьоипбебяарасбсу) В двух первых конструкторах в оболочку класса В1оскапдса11есг1оп<т> заключается коллекция, являющаяся экземпляром объекта типа Сопсиггепг()иеие<Т>. А в двух других конструкторах можно указать коллекцию, которая должна быть положена в основу коллекции типа В1осКТпдСо11есгьоп<Т>.

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

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

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

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