Stack Overflow на русском Asked on November 24, 2021
Всем привет! Не получается вывести адекватно данные в консоль, подскажите, как правильно это сделать, пожалуйста! toString я переопределил, но в Main не получается вывести сам список сотрудников. Вот код:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Employee> list = new ArrayList<>();
System.out.println("Введите <название атрибута> сотрудника");
while (true) {
System.out.println("Введите информацию о сотруднике (фамилия, имя, возраст, пол, образование, должность, отдел");
String surname = scanner.next();
String name = scanner.next();
int age = scanner.nextInt();
String gender = scanner.next();
String education = scanner.next();
String position = scanner.next();
String department = scanner.next();
Employee andrew = new Employee("Антонов", "Андрей", 27, "Мужской", "Высшее", "Преподаватель", "Лингвистическое отд-ие");
list.add(andrew);
Employee annie = new Employee("Иванова", "Анна", 26, "Женский", "Высшее", "Менеджер персоналом", "Отдел по побдорке персонала");
list.add(annie);
Employee alex = new Employee("Ховренко", "Алексей", 23, "Мужской", "Высшее", "Бурильщик", "Нефтегазовое отд-ие");
list.add(alex);
System.out.println("Если хотите закончить ввод данных, введите end");
String input = scanner.nextLine();
if ("end".equals(input)) {
for (int i = 0; i < list.size(); i++) {
System.out.println(????);
break;
}
}
}
}
public class Employee {
private String surname;
private String name;
private int age;
private String gender;
private String education;
private String position;
private String department;
public Employee(String surname, String name, int age, String gender, String education, String position, String department) {
this.surname = surname;
this.name = name;
this.age = age;
this.gender = gender;
this.education = education;
this.position = position;
this.department = department;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return "Emplyee{" +
"surname='" + surname + ''' +
", name='" + name + ''' +
", age=" + age +
", gender='" + gender + ''' +
", education='" + education + ''' +
", position='" + position + ''' +
", department='" + department + ''' +
'}';
}
}
Для вывода элементов списка:
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
Замечания:
Оператор break завершает последовательность и выходит из цикла. В вашем примере получается, что после вывода информации о первом сотруднике, работа цикла завершится.
У вас не получается вывести данные на консоль потому как Scanner.nextInt() считывает только число, без считывания нажатия "Enter". А когда вы пытаетесь вызвать Scanner.nextLine(), он уже получает этот "Enter" из буфера. Просто добавьте еще один Scanner.nextLine():
System.out.println("Если хотите закончить ввод данных, введите end");
scanner.nextLine();
String input = scanner.nextLine();
Answered by azlov on November 24, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP