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

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

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

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

Если параметр сотрагег имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию Сортирует вызывающую комекцию, используя для сравнения способ, определяемый параметром сотрагег. Сортировка начинается с элемента, указываемого по индексу Тпнех, и включает количество элементов, определяемых параметром соопс. Если параметр соврагег имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию ' Возвращает синхронизированный вариант коллекции типа Аггяу11я с, передаваемой в качестве параметра 11яг Возвращает массив, содержащий копии элементов вызывающего объекта Возвращает массив, содержащий копии элементов вызывающего обьекта.

Тип элементов этого массива определяется параметром суре Устанавливает значение свойства сярасссу равным ЗНаЧЕНИЮ СВОйСтВа Соопг роЬ11с чдггоа1 чо1с) Яогг (Тпг Тпс(ех, гпС соипг, Тсоврагег сотрагег) роЫсс ягаС1с Аггаувсяг БупсЛгоп1гес((Аггау11яС 11яг) рцЫТс ч1гсца1 оЬбесс [] ТоАггау() роЬ11с чзггца1 Аггау Тодггау (Туре Суре) роЫ1с ч1гсца1 чо1с) ТгсвтоБ1ге() В классе Аггауссяг поддерживается также ряд методов, оперирующих элементами коллекции в заданных пределах. Так, в одну коллекцию типа Аггау11яС можно вставить другую коллекцию, вызвав метод 1пяеггвапое () . Для удаления из коллекции элементов в заданных пределах достаточно вызвать метод Ревочеяапде () . А для Глава 25.

Коллекции, перечиолители и итераторы 935 перезаписи элементов коллекции типа Аггау11яс в заданных пределах элементами из другой коллекции служит метод Беграпое () . И наконец, элементы коллекции можно сортировать или искать в заданных пределах, а не во всей коллекции. По умолчанию коллекция типа Агха уП1яб не синхронизирована. Для получения синхронизированной оболочки, в которую заключается коллекция, вызывается метод Бупспгоп1гес)().

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

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

Для этой цели можно также вызвать метод Тг1гптоБ1 те ( ) . В приведенном ниже примере программы демонстрируется применение класса Аггау( Тяс. В ней сначала создается коллекция типа АггауЫ яс, а затем в эту коллекцию вводятся символы, после чего содержимое коллекции отображается.

Некоторые элементы затем удаляются из коллекции, и ее содержимое отображается вновь. После этого в коллекцию вводятся дополнительные элементы, что вынуждает увеличить ее емкость. И наконец, содержимое элементов коллекции изменяется. О продемонстрировать применение класса АггауЬ1яг. цятпд Буягеи; цяьпэ Буясега.Со11есслопя; с1аяя АггауЬ1ясоеюо ( ясаслс чогб Ма1п() // Соэпать коллекцию в виде динамического массива. Аггауьляс а1 = пен Аггаувьяс(); Сопво1е.нг1севвпе("Исходное количество элементов: " + а1.соцпс) Сопяо1е.нгтсеььпе (); Сопяо1е.нггсеввпе(тйобавить б элементов"); О добавить элементы в динамический массив.

а1.лсЫ('С'); 93б Часть П. Бибаиетека СМ а1 . Асс( ( ' А ' ); а1.АсЫ('Е')( а1.Ас(б('В')) а1.Ас)б('0'): а1.АсЫ ( Е'); Сопво1е.игьсеЬвпе("Количество элементов: " + а1.Сопла); О Отобразить солержимое динамического массива, // используя индексирование массива. Сопзо1е.игтсе("Текущее содержимое: Тог(гпг 1=0; 1 < а1.соцпг; 1+т) Сопао1е.игтсе(а1[1) + " ")' Сопво1е.иггге11пе ("1п") ) Сопво1е.игтсевьпе("Удалить 2 элемента")~ // удалить элементы из динамического массива.

а1.аешоче('Г'); а1.йешоче('А']; Сопво1е.игтсеььпе("Количество элементов: " + а1.СоцпС); // Отобразить содержимое динамического массива, используя цикл ТогеасЬ. сопао1е.игьге("содержимое: ")) йогеасЬ(сваг с Тп а1) сопао1е.иг1ге(с + " Сопзо1е.игтсевгпе("1п"); Сопво1е.иг1гевьпе("Добавить еще 20 элементов"); О )(сбавить количество элементов, достаточное для принудительного расширения массива. йог(ьпс 1=0; 1 < 20; а1.Ас)б((сваг)('а' + ).)); сопво1е.хгтсехтпе("текущая емкость: " + а1.сарас1гу)! Сопзо1е.иг1гевапе("Количество элементов после добавления 20 новых." а1.Соцпс); Сопво1е.иг1се("Содержимое.

""); ГогеасЬ(сваг с 1п а1) Сопво1е.Иг1се(с + " "); Сопзо1е.иг1сеь1пе("1п"); // Изменить содержимое динамического массива, О используя индексирование массива, Сопзо1е.игьсевьпе("Изменить три первых элемента"); а1(0) = 'Х'; а1(1) а1(2) = '2'; сопво1е.хгьге("Содержимое: "); йогеасЬ(сваг с Тп а1) Сопво1е.игтсе(с + " Сопво1е.Хггвевапе (); Глава 25. Комекции, перечислители и итераторы 937 Вот к какому результату приводит выполнение этой программы.

Исходное количество элементов: 0 Добавить б элементов Количество элементов: б текущее содержмое: с А Б в О у удалить 2 элемента Количество элементов: 4 Содержимое: С Б В О Добавить еще 20 элементов Текущая емкость: 32 Количество элементов лосле добавления 20 новых: 24 Содержимое: С Я П О а Ь с б е Г 9 Ь 1 3 К 1 щ л о р Ч г я Г Изменить три первых элемента Содержимое: Х У Б О а Ь с С е г 9 Ь г 3 К 1 щ л о р Ч г я Сортировка и поиск в комекции типа АггауЫвв Коллекцию типа АггауЬ1БЬ можно отсортировать с помощью метода Богб () .

В этом случае поиск в отсортированной коллекции с помощью метода В г ла ту эеа гсЬ ( ) становится еще более эффективным. Применение обоих методов демонстрируется в приведенном ниже примере программы. // Отсортировать коллекцию типа АггауЬгяс и осуществить в ней поиск. цяглэ Буяяекц цзьоэ Буясещ.со11ессьоля; сгаяя Боггзеагспоелю ( ягаггс тоти Магд() ( // Создать коллекцию в виде динамического массива. АггауЬьяо а1 = лен АггауЬ1яг()г // Добавить элементы в динамический массив. а1.лсЫ(55) г а1.Ас)с1 (43) Г а 1 . Ас)б (-4); а1.Або(88); а1.Ас)б(3); а1.Ас(С(19)Г Соляо1е.иггсе("Исходное содержимое: "); Гогеасп(1лс г 1л а1) Соляо1е.нггяе(1 т " ")," Соояо1е,иг1гепгле(ГКл")г // Отсортировать динамический массив.

а1. Бого () г // Отобразить содержимое динамического массива, используя цикл Гогеась. 938 Часть П. библиотека С(г Сопяо1е.игьсе("Содержимое после сортировки: "); Гогеасн (1пс г 1п а1) Сопяо1е.Хггсе(г т " "): сопяо1е.хгггеьгпе("1п")4 Сопяо1е.игьсеъ1пе("Индекс элемента 43: а1.81пагузеагсн(43))4 ) Ниже приведен результат выполнения этой программы. Исходное содержимое: 55 43 -4 88 3 19 Содержимое после сортировки: -4 3 19 43 55 88 Индекс элемента 43: 3 В одной и той же коллекции типа Аггаупсяс могут храниться объекты любого типа. Тем не менее во время сортировки и поиска в ней эти объекты приходится сравнивать. Так, если бы список объектов в приведенном выше примере программы содержал символьную строку, то их сравнение привело бы к исключительной ситуации.

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

Но независимо от конкретной причины коллекция типа Агга уцс я с преобразуется в обычный массив довольно просто, как показано в приведенном ниже примере программы. // Преобраэояать коллекцию типа Аггауъ1яс а обычный массив. оя1пс зуясею; ця1пс зуясею.со11есг1опя4 с1аяя Аггауь1ястолггау ( ягаггс тога ма1п() ( Аггауъ1яс а1 = пен Аггауъьяс (); О Добавить элементы я динамический массив. а1.АсЫ(1); а1.АсЫ(2) 4 а1.лес(3): а1.лоЫ (4) ( Сопяо1е.игьсе("Содержимое: "); Гогеасб(лпс 1 гп а1) Сопяо1е.иг1ге(г + " "); Сопяо1е.игггеъ1пе()4 Получить массив. Глава 25. )(омвкции, перечислигели и игвраторы 939 1пс() ьа = (ьпс() ) а1.тоьггау(суреог(ьпс) ); 1пс яшп = Ог Просуммировать элементы массива. Гог(гпг х=о; 1<1а.ьепстпг янм += зга(1) г Сопяо1е.игьгеъ1пе("Сумма равна: " + япм) Эта программа дает следующий результат.

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

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

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

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