Size: a a a

2020 August 11

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
В Hashmap добавляю ключ - это коллекция hashset, состоящая из уникальных имейлов, а значение это user
А дальше что с этим делать?
Ну так если у тебя есть уже коллекция, где ключ - адрес, а значение - юзер, то тебе достаточно превратить это в коллекцию, где ключ - юзер, а значение - список адресов. Можешь multimap где-нибудь найти, или просто использовать Map<String, List<String> >
источник

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
В Hashmap добавляю ключ - это коллекция hashset, состоящая из уникальных имейлов, а значение это user
А дальше что с этим делать?
Тебе не нужен HashSet. У тебя первая мапа должна быть Map<String, String>, вторая - Map<String, List<String> >
источник

AS

Andrey Shalygin in learn.java
Dmitriy Shilnikov
Тебе не нужен HashSet. У тебя первая мапа должна быть Map<String, String>, вторая - Map<String, List<String> >
спасибо большое, ушел думать
источник

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
спасибо большое, ушел думать
HashSet - это вообще просто удобный способ создать HashMap, у которой все значения одинаковые.
источник

QH

Quantum Harmonizer in learn.java
Dmitriy Shilnikov
HashSet - это вообще просто удобный способ создать HashMap, у которой все значения одинаковые.
HashMap — это деталь реализации, нам эти «одинаковые» значения всё равно не покажут
источник

AS

Andrey Shalygin in learn.java
Quantum Harmonizer
HashMap — это деталь реализации, нам эти «одинаковые» значения всё равно не покажут
а что покажет?
источник

QH

Quantum Harmonizer in learn.java
Andrey Shalygin
а что покажет?
Set
источник

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
а что покажет?
Тут главное, что значений нет, только одни ключи. Поэтому тебе в этой задаче сет бесполезен.
источник

AS

Andrey Shalygin in learn.java
Dmitriy Shilnikov
Тут главное, что значений нет, только одни ключи. Поэтому тебе в этой задаче сет бесполезен.
у меня ключи будут получается- список имейлов, как потом найти эти ключи где имейлы повторяются?
источник

DS

Dmitriy Shilnikov in learn.java
В мапе ключи не могут повторяться. Тебе надо просто у юзера проверить, есть ли уже эти адреса в мапе
источник

AS

Andrey Shalygin in learn.java
Dmitriy Shilnikov
В мапе ключи не могут повторяться. Тебе надо просто у юзера проверить, есть ли уже эти адреса в мапе
так то они не полностью повторяются а повторяются отдельные имейлы, то есть ключи да разные будут даже если в них встречаются повторяющиеся имейлы
источник

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
так то они не полностью повторяются а повторяются отдельные имейлы, то есть ключи да разные будут даже если в них встречаются повторяющиеся имейлы
Блин, у тебя строчка со списком адресов. Вначале берёшь, и КАЖДЫЙ адрес ищешь в мапе. Если ты нашёл хоть один - то ты нашёл и юзера, тогда просто пишешь в мапу все адреса из этой строчки в привязке к тому юзеру, которого нашёл. Если не нашёл ни одного, то это новый юзер - пишешь все адреса с привязкой к новому юзеру.
источник

DS

Dmitriy Shilnikov in learn.java
У тебя только может в итоге произойти ситуация, когда ты найдёшь более одного адреса в мапе, привязаных к разным юзерам
источник

DS

Dmitriy Shilnikov in learn.java
Тогда уже придётся их мержить
источник

AS

Andrey Shalygin in learn.java
Dmitriy Shilnikov
Блин, у тебя строчка со списком адресов. Вначале берёшь, и КАЖДЫЙ адрес ищешь в мапе. Если ты нашёл хоть один - то ты нашёл и юзера, тогда просто пишешь в мапу все адреса из этой строчки в привязке к тому юзеру, которого нашёл. Если не нашёл ни одного, то это новый юзер - пишешь все адреса с привязкой к новому юзеру.
тогда уже время не линейное будет
источник

DS

Dmitriy Shilnikov in learn.java
Но это мелочи уже
источник

DS

Dmitriy Shilnikov in learn.java
Andrey Shalygin
тогда уже время не линейное будет
С чего вдруг?
источник

DS

Dmitriy Shilnikov in learn.java
Ты каждый адрес ровно один раз в мапе ищешь и ровно один раз записываешь.
источник

AS

Andrey Shalygin in learn.java
Dmitriy Shilnikov
С чего вдруг?
каждый адрес ищешь в мапе? э
источник

QH

Quantum Harmonizer in learn.java
Andrey Shalygin
Всем привет! помогите плиз с алгоритмом решения задачи, я представляю, что нужно сделать карту, ключ будет user, значение список имейлов(я могу их добавить в hashset например), как потом находить в разных коллекциях повторяющиеся элементы за линейное время?


Имеется n пользователей, каждому из них соответствует список email-ов
(всего у всех пользователей m email-ов).
Например:
user1 ->xxx@ya.ru,foo@gmail.com,lol@mail.ru
user2 ->foo@gmail.com,ups@pisem.net
user3 ->xyz@pisem.net,vasya@pupkin.com
user4 ->ups@pisem.net,aaa@bbb.ru
user5 ->xyz@pisem.net
Считается, что если у двух пользователей есть общий email, значит это
один и тот же пользователь. Требуется построить
и реализовать алгоритм, выполняющий слияние пользователей. На выходе
должен быть список пользователей с их email-ами (такой же как на
входе).
В качестве имени объединенного пользователя можно брать любое из
исходных имен. Список email-ов пользователя должен содержать только
уникальные email-ы.
Параметры n и m произвольные, длина конкретного списка email-ов никак
не ограничена.
Требуется, чтобы асимптотическое время работы полученного решения было
линейным, или близким к линейному.
загоняешь всё в Map<email, username>, а потом в Map<username, List<email>>
источник