[英]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]
这可能不是一个答案,而是关于课堂设计的一些建议。
Employee
视为物理对象。
Employee
应该有名字吗? 是。 Employee
应该有姓吗? 是。 Employee
充满其他Employyes
? 绝对没有。 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.