Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.school.faang.hashset.задача_1;

import java.util.HashSet;
import java.util.Set;
import java.util.List;
import java.util.ArrayList;

public class EventRegistrationManager {

private final Set<String> registeredEmails;

public EventRegistrationManager() {
registeredEmails = new HashSet<>();
}

public void addRegistration(String email) {
if (registeredEmails.contains(email)) {
throw new IllegalArgumentException("The email " + email + " is already registered");
}
registeredEmails.add(email);
}

public int getParticipantCount() {
return registeredEmails.size();
}

public List<String> getAllRegisteredEmails() {
return new ArrayList<>(registeredEmails);
}

public boolean isRegistered(String email) {
return registeredEmails.contains(email);
}
}
6 changes: 5 additions & 1 deletion src/com/school/faang/hashset/задача_1/Solution.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

public class Solution {
public static void main(String[] args) {

EventRegistrationManager eventRegistrationManager = new EventRegistrationManager();
eventRegistrationManager.addRegistration("1223@gmail.com");
eventRegistrationManager.addRegistration("wow@yandex.ru");
System.out.println(eventRegistrationManager.isRegistered("1223@gmail.com"));
// eventRegistrationManager.addRegistration("wow@yandex.ru");
}
}
7 changes: 3 additions & 4 deletions src/com/school/faang/hashset/задача_1/УСЛОВИЕ.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

Представь, что ты организуешь крутую IT-конференцию. Места ограничены, и тебе нужна надёжная система для регистрации участников. Главное требование — каждый участник может зарегистрироваться только один раз, используя свой уникальный email. Если кто-то попытается зарегистрироваться с email, который уже есть в базе, система должна вежливо ему об этом сообщить и не добавлять дубликат.

Использовать обычный список (`List`) для этого было бы катастрофой. При каждой новой регистрации пришлось бы проверять весь список уже записавшихся, чтобы найти дубликаты. На тысяче участников это уже будет заметно тормозить, а на десяти тысячах — сайт просто "ляжет".

К счастью, ты знаешь про `HashSet`. Он создан для хранения уникальных значений и делает проверку на существование элемента практически мгновенно, сколько бы участников у тебя ни было.
Использовать обычный список (`List`) для этого было бы катастрофой. При каждой новой регистрации пришлось бы проверять весь список уже записавшихся, чтобы найти дубликаты.
К счастью, ты знаешь про `HashSet`.

## Что нужно сделать

Expand Down Expand Up @@ -34,4 +33,4 @@

Эта задача показывает, как `HashSet` решает фундаментальную бизнес-проблему: обеспечение уникальности данных.

Системы регистрации, подписки на рассылки, списки уникальных посетителей сайта — все они работают по этому принципу. Ты не просто учишься добавлять элементы в коллекцию, а создаешь логику, которая делает систему надёжной и защищённой от некорректных данных.
Системы регистрации, подписки на рассылки, списки уникальных посетителей сайта — все они работают по этому принципу. Ты не просто учишься добавлять элементы в коллекцию, а создаешь логику, которая делает систему надёжной и защищённой от некорректных данных.