Невозможно отобразить все элементы массива - PullRequest
0 голосов
/ 08 июля 2019

Меню с программой для добавления и отображения информации о сотруднике.Принимая входные данные от пользователя для сведения о сотруднике.Сохраните его в списке массивов и отобразите его.

Я добавил записи в список, но всегда последние введенные данные заменяют все элементы в списке.Взяв ввод в случае переключателя 1 и добавив его в массив списков, и отобразив его в другом случае:

    class Employee
    {
        Scanner sc = new Scanner(System.in);
        int empid,n;

        String empname, empdesignation, empdept, empproject;
        public Employee() { }

        public Employee(int id,String name,String desig,String dept,String proj)
        {
            this.empid=id;
            this.empname=name;
            this.empdesignation=desig;
            this.empdept=dept;
            this.empproject=proj;
        }

    public void setEmpNo() {
        System.out.print("Enter the number of employees: ");
        n = sc.nextInt();
    }

    public int getEmpNo() {
        return n;
    }

    public int getID() {
        return empid;
    }

    public void setID(int id) {
        this.empid = id;
    }

    public String getName() {
        return empname;
    }

    public void setName(String name) {
        this.empname = name;
    }

    public String getDept() {
        return empdept;
    }

    public void setDept(String dept) {
        this.empdept = dept;
    }

    public String getDesig() {
        return empdesignation;
    }

    public void setDesig(String desig) {
        this.empdesignation = desig;
    }

    public String getProject() {
        return empproject;
    }

    public void setProject(String proj) {
        this.empproject = proj;
    }

    public void displayemp(int id, String name, 
                           String dept, String designation, String project)
    {
        System.out.print("\n============================================================\n");
        System.out.println("ID: " + id);
        System.out.println("Name: " + name);
        System.out.println("Department: " + dept);
        System.out.println("Designation: " + designation);
        System.out.println("Project: " + project);
        System.out.print("\n============================================================\n");
    }
}

public class trying
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);

        int ch = 0, id, n, abc, count = 0, pcount = 0;
        final int  maxEmp=1000;

        String name, designation, dept, pname, mgrname, project;

        Employee emp5 = new Employee();

        Project proj5 = new Project();
        List<Employee> list = new ArrayList<Employee>();
        List<Project> list1 = new ArrayList<Project>();

        switch (ch) {
            case 1:
                emp5.setEmpNo();
                int a = emp5.getEmpNo();

                for (int i = 1; i < a+1; i++)
                {
                    System.out.print("Enter ID: ");

                    id = sc.nextInt();
                    emp5.setID(id);
                    sc.nextLine();
                    System.out.print("Enter Name: ");

                    name = sc.nextLine();
                    emp5.setName(name);
                    System.out.print("Enter Department: ");

                    dept = sc.nextLine();
                    emp5.setDept(dept);
                    System.out.print("Enter Designation: ");

                    designation = sc.nextLine();
                    emp5.setDesig(designation);
                    System.out.print("Enter Project: ");

                    project = sc.nextLine();
                    emp5.setProject(project);
                    list.add(emp5);
                }
                break;
            case 5:
                System.out.println("Showing Employee Details:");
                for(Employee e:list)
                {
                System.out.println(e.empid+" "+e.empname+" "+e.empdept+" "
                                   +e.empdesignation+" "+e.empproject);
                }
                break;
        }
    } while (!(ch <= 0 || ch > 7));
}

Мне нужно отобразить все записи списка массивов, но последний введенныйданные отображаются повторно.

1 Ответ

1 голос
/ 08 июля 2019
Employee emp5 = new Employee();

Это будет внутри цикла for после:

for (int i = 1; i < a+1; i++) {
    Employee emp5 = new Employee();

    ....
}

Вам нужно будет создать нового сотрудника obj.В данный момент вы продолжаете обновлять тот же объект.

Обновление

Попробуйте создать новый объект после добавления элемента в список

list.add(emp5);
emp5 = new Employee();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...