В вашей программе есть основной с одним вызовом, как это
UserCollector.addUserToTheList();
Когда программа завершает работу, список уничтожается. При следующем запуске вы получите новый список. Если ваше намерение состоит в том, чтобы добавить много пользователей, вам нужно либо продолжать запрашивать больше пользователей, либо сохранять список, который вы строите где-то.
Вы звоните
allUsers = new ArrayList<User>();
Каждый раз в addUserToTheList, следовательно, для каждого нового пользователя вы будете создавать новый список. Вы, вероятно, должны вместо этого инициализировать его в конструкторе. Но тогда вы не должны использовать статические методы. Как я уже говорил вам, ваш главный должен
UserCollector myCollector = new UserCollector();
myCollector .addUserToTheList();
Конструктор UserCollector может инициализировать список пользователей
public class UserCollector {
private List<User> allUsers;
public UserCollector() {
allUsers = new ArrayList<User>();
}
тогда вам не нужны статические методы.
Посмотрите на это:
if (keyboardInput.nextLine().equalsIgnoreCase("INSERT")
&& !allUsers.contains(inputUser)) {
allUsers.add(inputUser);
System.out.println("User has been successfully added to your list.");
}
else
System.out.println("This user already exists on the list!");
Когда вы набираете что-либо, кроме «INSERT» ypu, нажимаете «user Уже существует». Я бы всегда разделял пункты, давал разные сообщения.