TransWikia.com

Не могу через toString вывести данные в консоль в Java

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 + ''' +
                '}';
  }
}

One Answer

Для вывода элементов списка:

 for (int i = 0; i < list.size(); i++) {
     System.out.println(list.get(i));
 }

Замечания:

  1. Оператор break завершает последовательность и выходит из цикла. В вашем примере получается, что после вывода информации о первом сотруднике, работа цикла завершится.

  2. У вас не получается вывести данные на консоль потому как 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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP