簡體   English   中英

ArrayList不會在控制台中打印

[英]ArrayList won't print in console

我有一個Employee類,其中有一個名為addEmployee方法,它操縱ArrayList來添加員工。 我的以下代碼不會在控制台屏幕上打印列表。 我無法找出我的代碼有什么問題。

package com.sib.Tmanager;

import java.util.ArrayList;
import java.util.Scanner;

public class Employee {
    private String EmpFName;
    private String EmpLName;

    public Employee(String empFName, String empLName) {
        super();
        EmpFName = empFName;
        EmpLName = empLName;
    }
    public String getEmpFName() {
        return EmpFName;
    }
    public void setEmpFName(String empFName) {
        EmpFName = empFName;
    }
    public String getEmpLName() {
        return EmpLName;
    }
    public void setEmpLName(String empLName) {
        EmpLName = empLName;
    }

    public static void addEmployee()
    {
        ArrayList<Employee> Emplist= new ArrayList<Employee>();

        Scanner s=new Scanner(System.in) ;

        System.out.println("Enter the Firstname of the employee");
        String Fname= s.next();
        System.out.println("Enter the Lastname of the employee");
        String Lname= s.next();

        Employee emp = new Employee(Fname, Lname);
        Emplist.add(emp);

        //System.out.println(emp.EmpFName +" "+ emp.EmpLName);

        System.out.println(Emplist);
    }

}

我試圖通過重寫ToString()方法來改變我的代碼,我仍然有相同的以下輸出。

輸入員工的名字

賈森

輸入員工的姓氏

卡爾

[com.sib.Tmanager.Employee@1a758cb]

這可能不是一個答案,而是關於課堂設計的一些建議。

  1. Employee視為物理對象。
    • Employee應該有名字嗎? 是。
    • Employee應該有姓嗎? 是。
    • 如果一個Employee充滿其他Employyes 絕對沒有。
  2. 如果上述第三點沒有意義,你應該怎么做?
    • 創建一個名為EmployeeList的類。 EmplpoyeeList是否應該有Employees 為什么,當然!
    • 上面的類是您想要擁有Employee ArrayList
    • 此外,這是您想要使用addEmployee方法的地方,因此您可以添加Employee EmployeeList

這是一個例子

public class EmployeeList {
    ArrayList<Employee> employees;

    public EmployeeList() {
        employees = new ArrayList<Employee>();
    }

    public void addEmployee(Employee employee) {
        employees.add(employee);
    }

    public void printEmployees() {
        for (Employee e : employees) {
            System.out.println(e);
        }
    }
}

所以在main ,你首先會創建一個EmployeeList然后添加Employee s。

public static void main(String[] args) {
    EmployeeList list = new EmployeeList();
    list.addEmployee(new Employee("Jim", "Bo");
    list.addEmployee(new Employee("Foo", "Bar");
    list.addEmployee(new Employee("First", "Last");

    list.printEmployees();
}

注意: Employee對象以String表示形式打印出來,您應該像其他人建議的那樣覆蓋toString()方法。

您可以使用Arrays.toString(empList.toArray(new Employee[0]))empList.toString()來打印ArrayList的內容。 如果在Employee覆蓋toString() ,這將很好地打印。

從public static void main()調用AddEmployee()

的System.out.println(Emplist)

你正在嘗試打印Emplist對象

你必須迭代arraylist來顯示它的內容

您應該在類字段中分配ArrayList並在構造函數中初始化它

public class Employee {
private String EmpFName;
private String EmpLName;
private ArrayList<Employee> Emplist;
.
.
.
}

public Employee(String empFName, String empLName) {
    super();
ArrayList<Employee> Emplist= new ArrayList<Employee>();
    EmpFName = empFName;
    EmpLName = empLName;
}

現在,當您需要添加時,您只需:

this.Emplist.add(X);

在addEmployee方法中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM