для чего нужна коллекция
Зачем создавать Коллекцию на Ярмарке Мастеров (мой личный опыт)
У нас на Ярмарке Мастеров открыт уже не один магазинчик, но ни разу за все время мне не приходила мысль создать коллекцию в галерее. Времени ведь так мало, да и смысла особого не видела. Но все же два дня назад решила попробовать.
Через час я понимаю, что хочу не просто набор картинок по теме, а чтобы коллекция была маленьким рассказом, с началом и концом, чтобы первая фотография увлекала в путешествие, а последняя говорила: «Удачи тебе! Приходи еще!» Чтобы цветовая гамма коллекции не была одной, а переходила от одного цвета к другому. Как в дорогих духах – есть первая нота, а есть послевкусие. И между этими двумя – целый букет!
Листаешь, листаешь страничку за страничкой и видишь как много идей! Бывает придет мысль от усталости, что все уже создано… Но когда сядешь создавать коллекцию, то вдохновение так замучает, что заснуть не можешь, пока хотя бы не запишешь все!
Технически поняла насколько сложно найти работу по теме! Тут же включается мозг, как надо называть свои работы и какие ключевые слова писать, чтобы люди тебя нашли! Пока не попробуешь искать сам на разные темы – этого не поймешь! Тут же бежишь в свой магазин и начинаешь работу над названием и ключевыми словами.
Понимаешь, что заглавное фото у работы должно быть настроенческим! Когда ты смотришь и не можешь глаз оторвать, потому что не знаешь – ты это сейчас покупать пойдешь или ограничишься добавив в коллекцию и будешь каждый день смотреть и смаковать.
Понимаешь, что цвета в ключевых словах нужно указывать как минимум два – один цвет работы, а второй цвет общего фото. Потому что когда ты создаешь коллекцию, то тебе важнее найти по поиску общее настроение работы.
В общем, хорошие мои – мне понравилось создавать коллекции и вам советую! Огромное эстетическое удовольствие получите, море вдохновения и идей, поймете на практике, как работает поисковик на ЯМ, покажете себя (хоть и одной работой), доставите радость мастерам, чьи работы попадут в коллекцию.
Удачи, Радости и Мира в душе. С Любовью, я.
Пока у меня всего две коллекции вот здесь:
Попробовала сохранить их просто картинкой – уж очень жалко расставаться с коллекцией, когда работы из нее пропадают, потому что их купили.
Сплетая тайное с обыкновенным…
Пойдем в лес! Я познакомлю тебя с моими деревьями!
Какие бывают коллекции — разные виды
Добрый вечер, дамы и господа. Так приятно вечерком с друзьями и чашечкой чая рассматривать свою коллекцию марок, бабочек или фотографий из отпуска. Откуда в нас стремление что-то коллекционировать? Что такое вообще коллекция, почему набор вилок не она, а набор открыток – да? И, конечно же, какие бывают коллекции и на десерт самые интересные собранные вещи в мире.
Что такое коллекционирование?
Коллекционированием принято называть осознанное, систематизированное собирательство чего-либо. Запомните слово собирательство, как бы странно оно не звучало, мы его встретим в следующем пункте.
Коллекции отделяет от хлама прежде всего осознанный подбор элементов. Искать редкую марку, чтобы завершить серию из марок одного города – коллекционирование.
Беспорядочно скупать вообще все значки в магазине и кучей скидывать их в ящик «лишь бы было» – психическое расстройство. Здесь же мы описали про систематизацию. Коллекции раскладывают по хронологии, географии находок, сериям. А хлам просто лежит в ящике.
Необязательный признак коллекции – ее ценность. Чаще они собираются из исторических или редких вещей. Раньше марки, этикетки и фантики были дефицитом, хотя бы из-за реального отсутствия многих видов конфет в продаже. И их собирали. Сейчас магазины переполнены продуктами и мало кто решится собирать обертки от сотни видов шоколадок и тысячи видов вин.
Все собранные предметы должны быть чем-то объединены и принадлежать человеку или организации. В музее – коллекция. А дорожные знаки города – ну очень спорный вопрос. И да, вилки из набора – не коллекция. Они одинаковы. Вот если бы вы покупали одинаковые вилки с одного завода, но разного года выпуска – это коллекция.
Откуда в людях стремление собирать?
Знаете ли вы, что почти 40% земного шара что-то собирает? Этологами, специалистами по поведению, считается, что коллекционирование – инстинкт от наших предков.
Это звучит логично, ведь человек – собиратель. Помните это слово? Это значит, что мы не можем питаться любой травой и не можем охотиться на других животных. Я говорю о человеке до изобретения копья, колеса и прочих удобных вещей.
Сам по себе человек может ходить по лесу и собирать плоды, срывать съедобные растения, подбирать оставленные хищником объедки. Простите, мои дорогие, но изначально мы – падальщики. Так же как собаки, большинство кошачьих, да и вообще многие хищники.
В природе зверь не выбирает что получше, а старается не умереть от голода. Человек – собиратель, именно это помогло нам развить мозг и стать разумным. И именно поэтому у нас есть инстинкт тащить все в свой карман или дом.
Какие бывают
Давайте сначала разделим условно на существующие физически и не существующие. Например, из отпуска можно привезти сотни фоток, ракушки и магнитики. А можно только воспоминания. Но это достаточно абстрактный пример. Более вещественный – фото котиков на стене, существующие физически, и в памяти вашего телефона – только информация.
Дальше можно разделить по ценности. Не могу на одну полку поставить коллекцию Лувра и открытки Маши Ивановой. Можно еще по опасности (радиоактивные элементы? Пули?). А дальше делят по объектам. Если немного углубиться в тему, то вы поймете, что люди коллекционируют вообще все на свете. Ниже – самые «модные» коллекции и самые интересные по моему скромному мнению
Филателия – марки
Меня клонит в сон от марок, но они весьма распространены. В СССР было модным коллекционировать марки, но первый филателист появился с выпуском первой марки, в 1840 году. Кстати, филателисты совсем не обязательно собирают марки: сюда относятся все почтовые материалы, например конверты.
Хотела вам найти самую большую коллекцию марок, но поняла, насколько это бестолковая затея. Марки выпускаются ежедневно, так что коллекции растут. Самым большим считается подбор марок американского филателистического общества. Чтобы представить количество, скажу, что там 40 тысяч людей профессионально собирают марки. Представляете масштаб?
Деньги и ценные бумаги
Нумизматика – коллекционирование монет, а еще собирают бумажные деньги, исторические, как правило, ценные бумаги, утратившие свою ценность, жетоны, лотерейные билеты.
На самом деле, это очень дорогие коллекции. Многие хвастаются монетами, которым тысячи лет. Я, например, свои воспоминания коллекционирую через жетоны с символикой города или музеи. Выше пример.
Военное дело
Чтобы представить масштаб этого раздела, вспомните о военных монетах, часах, холодном оружии, разнообразии униформы и знаков отличия… для сбора атрибутики одной войны может понадобиться склад, лишний миллион и целая жизнь времени, а войны происходят каждый год.
Искусство
Самые дорогие коллекции – картины, статуи, яйца Фаберже, фарфора… вы можете собирать картины одного художника, а можете первые экземпляры кинолент одного режиссера.
Немного статистики. Самое большое собрание произведений искусства – в Лувре. Самое большое собрание картин – Эрмитаж в Санкт-Петербурге. А искусство древнего Египта изучайте в Каире, там самое большое собрание древностей. Но самые-самые коллекции лежат, конечно, в частных руках потомственной аристократии. Впрочем, это больше домыслы.
Техника
Машины, самолеты, мотоциклы, калькуляторы, радио, телевизоры… все, что изобрело человечество, кто-то коллекционирует.
Упаковки
Все, во что упаковывали что-либо. От этикеток на бутылках вина, и до оберток шоколадных конфет. Из современных вариантов, это чайные пакетики и пакетики с сахаром из кафе.
Съедобные предметы
Вино и пиво, конфеты и шоколадки, хлеба. Сюда еще можно отнести коллекционирование рецептов, а то замучаешься обновлять скоропортящиеся продукты.
Живые объекты
Комнатные растения у вашей бабушки – почти коллекция! А если она сознательно собирает только один тип растений, то точно коллекция. Из дорогих вариантов – семена доисторических растений.
А еще рыбки, бабочки, ракушки…
В общем, хватит классификаций, давайте самые интересные коллекции. Мы же здесь не ради сухой информации собрались?
Воздух
Совсем недалеко от нас, в Петербурге, у путешественника на полочке стоят склянки с воздухом из стран, где он побывал.
Более банальный, но тоже интересный вариант – песок со всех пляжей, где вы побывали.
Таблички «не беспокоить»
Это не очень правильно, но где-то в Швейцарии лежат более 10000 табличек из отелей. Посочувствуем отелям и восхитимся Жаном-Франсуа Вернетти.
Дорожные конусы
Коллекционер — David Morgan, и он попал в книгу рекордов, потому что смог собрать треть всех видов конусов, когда-либо выпускаемых на Земле.
Куклы
Волосы знаменитостей
Владелец — Louis Mushro, а волосы там есть даже президентов. Он подтверждает ДНК-тестами подлинность локонов, а в случае нужды просто продает их поклонникам.
Игральные кости
Еще один рекордсмен, Kevin Cook собрал самую большую коллекцию неповторяющихся костей в мире. У него их 11 тысяч, сможете повторить?
Самая прикольная
У одного чеха по фамилии Гайни есть коллекция из совершенно никак не связанной фигни, от ключей и до ботинок. Но это коллекция. Как так вышло? Гайни работал арбитром и собирал все, что в него кидали недовольные или счастливые фанаты. Как вам такое собрание предметов?
На сегодня закончим, а то список получился внушительным. Напишите, какие необычные коллекции видели вы или сами собираете. Может быть, детские сказки? Или рецепты кексиков… а может, игрушки из киндера?
С вами была Алла, чей ген собирателя почти что вымер.
Коллекции. Все за и против.
Всем доброго времени.
Спасибо, что заглянули.
Сегодня хочу поделиться своими мыслями о коллекциях мастеров на Ярмарке.
Это мои мысли, я их никому не навязываю, если у вас появится желание закидать меня помидорами, это ваше решение. Готовьте помидоры, господа.
Каждый мастер читает это по своему, одни это сообщение видят так:
Другие так:
Третьи вот так:
А может быть кто-то так:
Что делает мастер после того, как прочитал это письмо? Правильно, идет по ссылке и….
Тут может быть опять несколько вариантов:
Варианты 1,2,3,6 обычные и ничего интересного не представляют.
Или ваша работа до того хороша, что не может стоять в одном ряду вместе с другими менее красивыми работами?
Или какого черта ты вообще выбрал мою работу, да еще и такое дурацкое название придумал для коллекции.
А составитель в момент сбора коллекции выбирал, какую работу ему поставить эту или другую? Но выбрал именно эту.
Именно так он увидел и так почувствовал. А может быть, такая задумка была или…….
Но, явно этот составитель никого не хотел обидеть.
А еще почему-то выбрал из 176674-ех работ именно вашу юбку (брюки, платье), из 453675-ти работ выбрал именно ваше украшение, из 108835-ти картин выбрал именно вашу картину или панно, из 138041-го аксессуара выбрал именно вашу работу, из 188483-ох кукол (заек, мишек) выбрал именно вашего и т.д. и т.п.
Еще хочется остановиться на варианте 5!
Это самый интересный вариант.
Он должен быть даже интересен не для самого составителя коллекций, как интересен для мастера, чью работу включили в коллекцию.
Ведь сам текст письма с самого начала уже представляет и подразумевает ПРАЗДНИК.
Помните начало письма: Поздравляем! (и знак восклицания)
Что дает коллекция для составителя?
— Просмотр его магазина, если появятся желающие пройти в магазин.
— Реклама новинки магазина.
— Реклама акции, аукциона, распродажи, которую проводит составитель коллекции. По ссылке на акцию (аукцион, распродажу) пройдет тот, кто захочет посмотреть на цены.
— Новых подписчиков – это тот мастер (покупатель), кто прошел в магазин или тот мастер, кто в благодарность за то, что его работу добавили в коллекцию.
— И просто так для души, отвлечься, отдохнуть, увидеть что-то новое………………
Что дает коллекция для мастера, чья работа попала в коллекцию?
Это возможность 6,25%, вероятность 1 к 16-ти того, что его работа сможет быть на ГЛАВНОЙ странице ЯМ.
Да, она там будет всего 2 часа! Но этого времени достаточно для просмотров, которые увеличиваются в десятки раз. Да, да всего за 2 часа просмотры увеличиваются в разы. И тут же появляются новые подписчики, новые заказы и новые продажи.
И чтобы это случилось достаточно всего на всего выполнить несколько действий (смотри вариант 5). И что самое главное при этом мешки с песком таскать не надо.
Зато потом появляется вероятность получить письмо: (цитирую)
С текущего момента и до окончания показа коллекции редактирование и удаление Вашей работы будет временно невозможно. После завершения показа Вы сможете проводить любые действия со своей работой, как обычно.»
И тут опять праздник, опять поздравления.
Коллекция и аукцион. Аукцион и коллекция.
Зачем они нужны эти коллекции?
Играют ли они роль в продвижении аукциона?
Думаю, что играют. Хотите вы этого или нет, но коллекции смотрят, переходят по ссылкам и волей неволей становятся посетителями, а может быть и покупателями аукциона.
Другой вопрос как оставляют комментарии в коллекциях сами участники аукциона и оставляют ли их вообще. Но это уже на их совести. Как продвинуть коллекцию, а вместе с ней и сам аукцион смотри Пункт 1, вариант 5.
Комментарии в коллекциях с просьбами.
Это тема поднималась ни один раз, многие писали и повторяться уже не интересно.
Я удаляю такие комментарии. И точка.
Добавляйте мои работы в свои коллекции.
Я всегда выполняю вариант 5.
Пожалуй, все. На сегодня достаточно. Пятница 13-ое. Классика)))
Зачем собирать коллекцию?
Зачем собирать коллекцию?
Идея собирать какую-нибудь коллекцию обычно приходит к ребёнку в старшем дошкольном или младшем школьном возрасте. И это, как правило, подражание сверстникам, которые увлечены собирательством каких-нибудь аксессуаров. Это могут быть фигурки героев популярных мультиков или бумажные фантики, коллекционные куклы, машинки или сборные модели кораблей. Что бы это ни было, такое занятие приносит ребёнку большую пользу для развития. Какую?
1. Коллекционируя, ребёнок становится более собранным, аккуратным, привыкает бережно относиться к вещам, ведь только в этом случае его коллекция сохранится и её можно будет с гордостью продемонстрировать друзьям.
2. Коллекционирование учит ребёнка планировать, систематизировать, группировать экземпляры коллекции наилучшим образом. И все эти качества развивают логическое мышление.
3. Дизайнерский способности и эстетический вкус тоже не останутся без дела, ведь коллекцию нужно выгодно подать, красиво расположив все предметы на специальных подставочках.
Но самое главное то, что собирая популярную среди ровесников коллекцию, ребёнок приобретает значимость в детском коллективе, завоевывает авторитет и становится уверенней в себе.
Что ещё делать с коллекцией?
+ С коллекционными игрушками, конечно, можно играть. Сейчас очень многие производители выпускают игрушки специальными сериями.
+ Их можно выставить на полочке для украшения комнаты.
+ Дети – друзья, собирающие коллекции, могут меняться предметами, обменивая их друг у друга. Такое занятие очень полезно, ведь малыш учится общаться и договариваться. Учится понимать цену предметам и настоящей дружбе.
Какие коллекции больше всего ценятся ребёнком?
Конечно, те, к созданию предметов которых он приложил собственные усилия, например, собрал модели, нарисовал картинки или своими руками сделал мягкий коврик. Попробуйте увлечь одним из подобных занятий вашего сына или дочь и у вас дома вскоре появится самая уникальная коллекция, которую можно смело записывать в копилку достижений вашего сокровища.
Не забудьте рассказать друзьям о этой статье!
Готовимся к собеседованию: что нужно знать о коллекциях в Java
Освежаем знания о коллекциях в Java и закрепляем их на практике.
Коллекции в Java — одна из любимых тем на собеседованиях Java-разработчиков любого уровня. Без них не обходятся и экзамены на сертификат Java Professional.
Вспомним основные типы коллекций, их реализации в Java, проверим понимание на практике.
Что такое коллекции
Коллекции — это наборы однородных элементов. Например, страницы в книге, яблоки в корзине или люди в очереди.
Инструменты для работы с такими структурами в Java содержатся в Java Collections Framework. Фреймворк состоит из интерфейсов, их реализаций и утилитарных классов для работы со списками: сортировки, поиска, преобразования.
Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.
Галопом по Европам, или Кратко об интерфейсах
Set — это неупорядоченное множество уникальных элементов.
Например, мешочек с бочонками для игры в лото: каждый номер от 1 до 90 встречается в нём ровно один раз, и заранее неизвестно, в каком порядке бочонки вынут при игре.
List — упорядоченный список, в котором у каждого элемента есть индекс. Дубликаты значений допускаются.
Например, последовательность букв в слове: буквы могут повторяться, при этом их порядок важен.
Queue — очередь. В таком списке элементы можно добавлять только в хвост, а удалять — только из начала. Так реализуется концепция FIFO ( first in, first out) — «первым пришёл — первым ушёл». Вам обязательно напомнят это правило, если попробуете пролезть без очереди в магазине:
А ещё есть LIFO (last in, first out), то есть «последним пришёл — первым ушёл». Пример — стопка рекламных буклетов на ресепшене отеля: первыми забирают самые верхние (положенные последними). Структуру, которая реализует эту концепцию, называют стеком.
Deque может выступать и как очередь, и как стек. Это значит, что элементы можно добавлять как в её начало, так и в конец. То же относится к удалению.
Будет здорово, если на собеседовании вы назовёте Deque правильно: «дэк», а не «д экью», как часто говорят.
Map состоит из пар «ключ-значение». Ключи уникальны, а значения могут повторяться. Порядок элементов не гарантирован. Map позволяет искать объекты (значения) по ключу.
Пример: стопка карточек с иностранными словами и их значениями. Для каждого слова (ключ) на обороте карточки есть вариант перевода (значение), а вытаскивать карточки можно в любом порядке.
Не путайте интерфейс Collection и фреймворк Collections. Map не наследуется от интерфейса Collection, но входит в состав фреймворка Collections.
Соберём всё вместе
Set | List | Queue | Map | |
---|---|---|---|---|
Возможны дубликаты | ❌ | ✅ | ✅ | ✅ для значений |
❌ для ключей
Такие разные реализации
Реализаций интерфейсов так много, что при желании можно организовать вполне себе упорядоченный Map и даже отсортированное множество. Пройдёмся кратко по основным классам.
Реализации List
Класс ArrayList подойдёт в большинстве случаев, если вы уже определились, что вам нужен именно список (а не Map, например).
Строится на базе обычного массива. Если при создании не указать размерность, то под значения выделяется 10 ячеек. При попытке добавить элемент, для которого места уже нет, массив автоматически расширяется — программисту об этом специально заботиться не нужно.
Список проиндексирован. При включении нового элемента в его середину все элементы с б ольшим индексом сдвигаются вправо:
При удалении элемента все остальные с бо́льшим индексом сдвигаются влево:
Класс LinkedList реализует одновременно List и Deque. Это список, в котором у каждого элемента есть ссылка на предыдущий и следующий элементы:
Благодаря этому добавление и удаление элементов выполняется быстро — времязатраты не зависят от размера списка, так как элементы при этих операциях не сдвигаются: просто перестраиваются ссылки.
На собеседованиях часто спрашивают, когда выгоднее использовать LinkedList, а когда — ArrayList.
Правильный ответ таков: если добавлять и удалять элементы с произвольными индексами в списке нужно чаще, чем итерироваться по нему, то лучше LinkedList. В остальных случаях — ArrayList.
В целом так и есть, но вы можете блеснуть эрудицией — рассказать, что под капотом. При добавлении элементов в ArrayList (или их удалении) вызывается нативный метод System.arraycopy. В нём используются ассемблерные инструкции для копирования блоков памяти. Так что даже для больших массивов эти операции выполняются за приемлемое время.
Реализации Queue
Про одну из них, LinkedList, мы рассказали выше.
Класс ArrayDeque — это реализация двунаправленной очереди в виде массива с переменным числом элементов.
Новые значения можно добавлять в начало или конец списка, и удалять оттуда же. Причём эти операции выполняются быстрее, чем при использовании LinkedList.
Класс PriorityQueue — упорядоченная очередь. По умолчанию элементы добавляются в естественном порядке: числа по возрастанию, строки по алфавиту и так далее, либо алгоритм сравнения задаёт разработчик.
Этот класс может быть полезен, например, для нахождения n минимальных чисел в большом неупорядоченном списке:
Такая реализация выгоднее по скорости и объёму памяти, чем подход с сортировкой первоначального списка.
Реализации Set
Класс HashSet использует для хранения данных в хеш-таблице. Это значит, что при манипуляциях с элементами используется хеш-функция — hashCode() в Java.
Хеш-таблица — структура данных, в которой все элементы помещаются в бакеты (buckets), соответствующие результату вычисления хеш-функции.
Например, администратор в гостинице может класть ключ в коробку с номером от 1 до 9, вычисляя его по такому алгоритму: складывать все цифры номера, пока не получится одноразрядное число.
Здесь алгоритм вычисления — хеш-функция, а результат вычисления — хеш-код.
Тогда ключ от номера 356 попадёт в коробку 5 (3 + 5 + 6 = 14; 1 + 4 = 5), а ключ от номера 123 — в коробку с номером 6.
Добавление, поиск и удаление элементов при такой организации происходит за постоянное время, независимо от числа элементов в коллекции.
О классе TreeSet вспоминают в тех случаях, когда множество должно быть упорядочено. Каким образом упорядочивать — определяет разработчик при создании нового TreeSet. По умолчанию элементы располагаются в естественном порядке. Организованы они в виде красно-чёрного дерева.
Реализации Map
Класс HashMap хранит данные в виде хеш-таблицы, как и HashSet. Более того, HashSet внутри использует HashMap. При этом ключом выступает сам элемент.
Класс TreeMap строится тоже на базе красно-чёрного дерева. Элементы здесь упорядочены (в естественном или заданном при создании порядке) в каждый момент времени. При этом вставка и удаление более затратны, чем в случае с HashMap.
Класс LinkedHashMap расширяет возможности HashMap тем, что позволяет итерироваться по элементам в порядке их добавления. Как и в LinkedList, здесь каждая пара-значение содержит ссылку на предыдущий и последующий элементы.
Ещё один хитрый вопрос на собеседовании: в каких коллекциях допускаются null-элементы?
Ответ: почти во всех, но нельзя добавлять null-значения в упорядоченные структуры, которые при добавлении нового элемента используют сравнение.
Обоснование: мух советуют отделять от котлет — иными словами, нельзя сравнивать принципиально разные, несопоставимые вещи. Так же и в Java невозможно понять, что больше: null или число 1, или null или строка «hello».
Поэтому null-значения запрещены в TreeMap и TreeSet.
Ещё они недопустимы в ArrayDeque, так как методы этого класса (например, poll() — удаление элемента из начала очереди) используют null как признак пустоты коллекции.
Попрактикуемся
Чтобы убедиться, что вы не просто вызубрили теорию, а хорошо понимаете предмет, на собеседовании вам могут предложить задания вроде «что произойдёт при выполнении кода»
Разберём типовые задачи на понимание коллекций.
Задачи для ArrayList
Что будет напечатано после выполнения кода ниже:
Правильный ответ: test2:test4:test1:test4:test2:test3:
Элементы в ArrayList нумеруются начиная с нуля. Поэтому элемент с номером 1 — это test2.
Следующим действием мы добавляем строку «test4» в ячейку с индексом 1. При этом элементы с бо́льшим индексом сдвигаются вправо.
Вторая часть вывода ( test4) показывает, что теперь по индексу 1 извлекается именно test4.
Далее мы обходим все элементы списка и убеждаемся, что они выводятся именно в порядке добавления.
Что будет выведено при выполнении кода:
Правильный ответ: 2:2
Первая часть понятна: добавили два элемента, поэтому размер списка равен двум. Остаётся вопрос: почему не был удалён «test1»?
Перед удалением элемента его нужно найти в списке. ArrayList и остальные коллекции, которые не используют алгоритмы хеширования, применяют для поиска метод equals().
Строки сравниваются по значению, поэтому «test3» не эквивалентно «test1» и «test2». А раз ни один элемент не соответствует критерию поиска, ничего не удалится — размер списка останется прежним.
Проверьте себя: подумайте, что произойдёт, если вместо
Задачи для Set
Что выведет фрагмент кода ниже:
Правильный ответ: 3:, а дальше точно не известно.
Так как строки сравниваются по значению, а дубликаты во множествах недопустимы, второй «Иван» не станет частью множества. В итоге размер множества будет равен 3.
В каком порядке будут выведены элементы множества — определённо мы сказать не можем: во множествах порядок добавления не сохраняется.
Что выведет фрагмент кода:
Правильный ответ: 4.
Как же так, ведь во множество должны попадать уникальные элементы?
Прежде чем добавить новый элемент в множество, вычисляется его hashCode() — чтобы определить бакет, куда он может быть помещён.
Если бакет пуст, элемент будет добавлен. Иначе уже добавленные элементы с таким же значением хеша сравниваются с кандидатом при помощи метода equals(). Если дубликат не найден, новый элемент становится частью множества. Он попадёт в тот же бакет.
Мы добавляем в Set объекты типа Person — созданного нами класса. Этот класс, как и все ссылочные типы, наследуется от класса Object.
Так как мы не переопределили метод hashCode(), будет использована родительская реализация. В ней хеш вычисляется на основе данных адреса (реализация зависит от JVM).
Метод equals() тоже не переопределён. В классе-родителе этот метод просто сравнивает ссылки на объекты. Это значит, что даже если хеш случайно совпадёт для каких-то из четырёх элементов, equals() в любом случае вернёт false.
Таким образом, каждый из четырёх кандидатов попадёт в множество.
Проверьте себя: изменится ли что-нибудь, если переопределить hashCode() вот так:
А если ещё и equals() переопределить, как на фрагменте ниже: