|
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 6
|
|||||||||||
Применение интерфейса Multiset классом HashMultiset06.12.2019, 18:15. Показов 3075. Ответов 8
Метки нет (Все метки)
Здравствуйте
Пытаюсь самообучаться через интернет(hyperskill.org) Застопорился на задании: Дан интерфейс Multiset, примените все его методы при помощи класса HashMultiset. В классе одно единственное поле Map<E, Integer>. Модификации интерфейса/класса, условиями задачи не возбранялись. Собсно, интерфейс: Кликните здесь для просмотра всего текста
Собсно, попытка его реализовать: Кликните здесь для просмотра всего текста
В принципе все более-менее ясно: В keys хранятся объекты, в values - их количество. Однако есть одна проблема в На сколько я разобрал из описания: Метод сравнивает две карты (мою, и ту, что спрятана в объекте "other") и оставляет только те пары ключ-значение, которые есть в обоих картах. При этом значение берётся из той пары, в которой оно "меньшее". Я однако танцы с ним ни к чему хорошему не привели. Так же попробовал перебор через Map.Entry и снова ничего не вышло. Подскажите пожалуйста, в каком направлении копать? Можно даже без кода, объяснение на пальцах тоже подойдет. Спасибо.
0
|
|||||||||||
| 06.12.2019, 18:15 | |
|
Ответы с готовыми решениями:
8
Наследование интерфейса INotifyPropertyChanged классом с 2 свойствами Применение интерфейса Наследование интерфейса базовым классом и его наследниками |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 06.12.2019, 18:35 | |
|
может надо взять готовый HashMultiset и потыкать методы оттуда, а не писать свою поделку?
1
|
|
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
|
| 06.12.2019, 20:02 | |
|
1. Не надо добавлять методы в интерфейс. Добавляйте вспомогательные методы прямо в класс. Имплементация интерфейса означает что нужно реализовать все методы интерфейса, ограничение на другие методы не накладывается.
2. Воспользуйтесь Яндекс-переводчиком и переведите описание метода union()
1
|
|
|
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
|
||||||
| 06.12.2019, 21:47 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 6
|
||||
| 06.12.2019, 23:04 [ТС] | ||||
|
скопирую кусок кода, вставлю не думая, а в голове не отложится. Хочется понять "что", "куда", "зачем", "почему". Там и без переводчика вроде ясно, что "если нашлись одинаковые ключи при сравнении - сложить их значения, иначе добавить к результату пару ключ-значение из объекта, с которым производится сравнение". Поправьте, если ошибся, это же логика "объединения" и "пересечения": Например две мапы | а 5 | | a 9 | | а 14 | | с 3 | и | b 1 | должно дать результат | b 1 | | е 8 | | k 6 | при вызове union() | c 3 | | e 8 | | k 6 | А с intersection надо наоборот, оставить только совпавшие ключи с наименьшим значением из двух пар, остальное уничтожить т.е. : | а 5 | | a 9 | | с 3 | и | b 1 | должно дать результат | а 5 | | е 8 | | k 6 | при вызове intersection() Добавлено через 28 минут vcrop, но доступ к map из other так просто не получить, даже IDE ругается. P.S. прошу прощения, съехал текст примеров. Две мапы: | а 5 | | с 3 | | е 8 | и | a 9 | | b 1 | | k 6 | должно дать результат при вызове union() | а 14 | | b 1 | | c 3 | | e 8 | | k 6 | А с intersection надо наоборот, оставить только совпавшие ключи с наименьшим значением из двух пар, остальное уничтожить т.е. : | а 5 | | с 3 | | е 8 | и | a 9 | | b 1 | | k 6 | должно дать результат при вызове intersection() | а 5 |
0
|
||||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||||||
| 06.12.2019, 23:54 | ||||||
|
Да, с описанием метода это я затупил, вместо intersection прочитал описание к union.
Как я понимаю, доступ ко всем элементам мультисета-параметра можно получить так:
0
|
||||||
|
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
|
||||||
| 06.12.2019, 23:55 | ||||||
Сообщение было отмечено Albert_Dzh как решение
Решение
Прости, невнимательно посмотрел
0
|
||||||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 07.12.2019, 00:29 | |
|
Albert_Dzh, ну вот не знаешь ты как написать intersect, открой нормальный код, посмотри как там сделает, разберись, сделай так же у себя. Это быстрее и проще, чем сидеть тут ждать пока тебе кто-то что-то объяснит
0
|
|
|
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 6
|
|
| 07.12.2019, 19:41 [ТС] | |
|
vcrop, большое Вам спасибо за рабочий пример.
Sindbad_M, а Вам отдельное спасибо, за то, что уделили время и разжевали. Все гениальное, как обычно, просто, а мне не хватило фантазии. xoraxax, Вам тоже спасибо за участие. Вот только я не сидел сложа руки, а искал способ разобраться самостоятельно, и довольно-таки длительное время, прежде чем решился задать вопрос тут. В силу не важно каких обстоятельств, у меня справиться самому не вышло. Не вижу в этом ничего постыдного, тем более, что я нахожусь в процессе обучения. И уж тем более ничего постыдного не вижу в том, чтобы спросить у людей, которые разбираются в этом гораздо лучше меня. Обещаю в будущем больше стараться решить задание самостоятельно.
0
|
|
| 07.12.2019, 19:41 | |
|
Помогаю со студенческими работами здесь
9
Реализация интерфейса классом, где объявлен этот интерфейс Можно ли ограничить вызов методов интерфейса определённым классом?
Выбор между абстрактным классом, интерфейсом и простым классом Организовать связь между собственным классом и классом SpriteABC Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|