Всем привет! Почему-то у меня в голове осело, что для каждого объекта есть два обязательных параметра: имя + адрес в памяти. Но условия этой задачи заставили меня в этом усомниться.
В метод addUser мы просто передаем выделенный кусочек памяти под нашего юзера addUser(new User()); и в последствии записываем туда значения полей имени и возраста.
Если я правильно понимаю, то мы не можем воспользоваться методами ArrayList в данном случае. К примеру, не можем получить объект типа User под определенным индексом, т.к. не можем к нему обратиться по имени. И кажется, что нужно было бы написать код по добавлению нового юзера как-то так:
User Julia = new User();
addUser(Julia);
Подскажите, в чем я ошибаюсь?
package com.javarush.task.pro.task14.task1401;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Поработай обработчиком
*/
public class Solution {
public static final String INPUT_NAME = "\nВведите имя: ";
public static final String INPUT_AGE = "Введите возраст пользователя '%s': ";
public static final String CANNOT_BE_NULL = "Имя не может быть null.";
public static final String CANNOT_BE_EMPTY = "Имя не может быть пустым.";
public static final String CANNOT_CONTAIN_DIGIT = "Имя не может содержать цифры.";
public static final String CANNOT_BE_NEGATIVE = "Возраст не может быть меньше 0.";
public static final String CANNOT_BE_TOO_BIG = "Возраст не может быть больше 150.";
public static final String UNKNOWN_ERROR = "Неизвестная ошибка.";
public static final String FOUND = "\nПользователь '%s' найден под индексом %d.\n";
public static final String NOT_FOUND = "\nПользователь '%s' не найден.\n";
static List<User> users = new ArrayList<>();
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
addUser(new User());
}
User userToSearch = new User();
userToSearch.setName("Рафаэль");
findUserIndex(userToSearch);
}
static void addUser(User user) {
System.out.print(INPUT_NAME);
String name = scanner.nextLine();
System.out.printf(INPUT_AGE, name);
int age = Integer.parseInt(scanner.nextLine());
//напишите тут ваш код
user.setName(name);
user.setAge(age);
users.add(user);
}
static void findUserIndex(User user) {
//напишите тут ваш код
System.out.printf(FOUND, user.getName(), users.indexOf(user));
}
}