switch(menuChoice) {
case 1:
System.out.println("Enter your contact's first name:\n");
String fname = scnr.next();
System.out.println("Enter your contact's last name:\n");
String lname = scnr.next();
Necronomicon.addContact(new Person(fname, lname));
break;
// main truncated here for readability
import java.util.ArrayList;
public class AddressBook {
ArrayList<Person> ArrayOfContacts= new ArrayList<Person>();
public void addContact(Person p) {
ArrayOfContacts.add(p);
/*
for(int i = 0; i < ArrayOfContacts.size(); i++) {
if(ArrayOfContacts.get(i).getID() != p.getID())
ArrayOfContacts.add(p);
else
System.out.println("Sorry this contact already exists.");
}
*/
}
}
public class Person {
private String fName = null;
private String lName = null;
private static int ID = 1000;
public Person(String fName, String lName) { // Constructor I'm using to try and increment the ID each time a Person object is created starting at 1001.
this.fName = fName;
this.lName = lName;
ID = ID + 1;
}
}
Я пытаюсь создать адресную книгу при этом каждый контакт имеет имя, фамилию и уникальный идентификатор.Java адресная книга. Как предотвратить дублирование контактов в моем коде?
Мой вопрос заключается в том, как запретить пользователю вводить двойные контакты с тем же именем и фамилией? Должен ли я выполнять какую-либо проверку в методе addContact или прямо в главном? Как?
Разве вы не запрещаете добавлять один и тот же идентификатор? Обычные адресные книги имеют двойные имена –
Хорошая точка.Вероятно, это лучший способ сделать это. Возможно, я мог бы использовать HashSet и просто использовать идентификаторы пользователя, чтобы предотвратить дублирование. –
Вы можете использовать 'HashMap' –