For some reason, in my Pseudo database, my remove method seems to be completely ineffective and isn't working. The source code is below:
import java.util.ArrayList;
import java.util.Scanner;
public class Lab2 {
static ArrayList<Person> peopleDirectory = new ArrayList<Person>(10);
public static void main(String[] args) {
// TODO Auto-generated method stub
int choice;
Scanner userInput = new Scanner(System.in);
do {
System.out.println("Welcome to the people directory please make a choice from the list below:");
System.out.println("-------------------------------------------------------------------------");
System.out.println("1. Add a person to the directory.");
System.out.println("2. Remove a Person from the directory.");
System.out.println("3. View the User Directory.");
System.out.println("4. Exit the directory.");
choice = userInput.nextInt();
switch(choice) {
case 1:
addPerson(new Person());
break;
case 2: removePerson(new Person());
break;
case 3: displayPeople();
break;
case 4: System.out.println("Thanks for using the people diretory!");
System.exit(0);
break;
default: System.out.println("Invalid choice! Please select a valid choice!");
break;
}
} while (choice != 4);
}
public static void addPerson(Person thePerson) {
String firstName;
String lastName;
String phoneNumber;
int age;
if (peopleDirectory.size() >= 10) {
System.out.println("Sorry the list can not be larger than 10 people");
} else {
int i = 0;
Scanner input = new Scanner(System.in);
System.out.println("Enter the first name of the Person you would like to add: ");
firstName = input.nextLine();
thePerson.setFirstName(firstName);
System.out.println("Enter the last name of the Person you would like to add: ");
lastName = input.nextLine();
thePerson.setLastName(lastName);
System.out.println("Enter the phone number of the Person you would like to add: ");
phoneNumber = input.nextLine();
thePerson.setPhoneNumber(phoneNumber);
System.out.println("Enter the age of the Person you would like to add: ");
age = input.nextInt();
thePerson.setAge(age);
peopleDirectory.add(i, thePerson);
i++;
}
}
public static void removePerson(Person thePerson) {
if (peopleDirectory.size() < 1) {
System.out.println("There is absolutely nothing to remove from the Directory");
}
else {
Scanner input = new Scanner(System.in);
System.out.println("Please enter the first name of the person you would like to delete: ");
String firstName = input.nextLine();
thePerson.setFirstName(firstName);
System.out.println("Enter the last name of the Person you would like to remove: ");
String lastName = input.nextLine();
thePerson.setLastName(lastName);
System.out.println("Enter the phone number of the Person you would like to remove: ");
String phoneNumber = input.nextLine();
thePerson.setPhoneNumber(phoneNumber);
System.out.println("Enter the age of the Person you would like to remove: ");
int age = input.nextInt();
thePerson.setAge(age);
for (int i = 0; i < peopleDirectory.size(); i++) {
if (peopleDirectory.get(i).equals(thePerson)) {
peopleDirectory.remove(thePerson);
}
}
}
}
public static void displayPeople() {
for (Person person : peopleDirectory) {
System.out.println("First Name: " + person.getFirstName() + " Last name: " +
person.getLastName() + " Phone number: " + person.getPhoneNumber() +
" Age: " + person.getAge());
}
}
}
class Person {
private String firstName;
private String lastName;
private int age;
private String phoneNumber;
public Person (String firstName, String lastName, int personAge, String phoneNumber) {
this.firstName = firstName;
this.lastName = lastName;
this.age = personAge;
this.phoneNumber = phoneNumber;
}
public Person() {
this.firstName = "";
this.lastName = "";
this.age = 0;
this.phoneNumber = "";
}
public int getAge() {
return this.age;
}
public String getFirstName() {
return this.firstName;
}
public String getLastName() {
return this.lastName;
}
public String getPhoneNumber() {
return this.phoneNumber;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setAge(int age) {
this.age = age;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
When I attempt to remove an element from the ArrayList, it still remains in the arrayList. I have no idea why, but I feel as if my remove method is a bit clunky.
For instance I add an element and attempt to remove it (see output below):
Welcome to the people directory please make a choice from the list below:
-------------------------------------------------------------------------
1. Add a person to the directory.
2. Remove a Person from the directory.
3. View the User Directory.
4. Exit the directory.
1
Enter the first name of the Person you would like to add:
Tom
Enter the last name of the Person you would like to add:
Jones
Enter the phone number of the Person you would like to add:
6073388152
Enter the age of the Person you would like to add:
24
Welcome to the people directory please make a choice from the list below:
-------------------------------------------------------------------------
1. Add a person to the directory.
2. Remove a Person from the directory.
3. View the User Directory.
4. Exit the directory.
3
First Name: Tom Last name: Jones Phone number: 6073388152 Age: 24
Welcome to the people directory please make a choice from the list below:
-------------------------------------------------------------------------
1. Add a person to the directory.
2. Remove a Person from the directory.
3. View the User Directory.
4. Exit the directory.
2
Please enter the first name of the person you would like to delete:
Tom
Enter the last name of the Person you would like to remove:
Jones
Enter the phone number of the Person you would like to remove:
6073388152
Enter the age of the Person you would like to remove:
24
Welcome to the people directory please make a choice from the list below:
-------------------------------------------------------------------------
1. Add a person to the directory.
2. Remove a Person from the directory.
3. View the User Directory.
4. Exit the directory.
3
First Name: Tom Last name: Jones Phone number: 6073388152 Age: 24
Welcome to the people directory please make a choice from the list below:
-------------------------------------------------------------------------
1. Add a person to the directory.
2. Remove a Person from the directory.
3. View the User Directory.
4. Exit the directory.
What could I be doing wrong here?