Java ArrayList赢得';t在控制台中打印
我有一个Java ArrayList赢得';t在控制台中打印,java,Java,我有一个Employee类,它有一个名为addEmployee的方法,该方法操纵ArrayList来添加员工。我下面的代码不会在控制台屏幕上打印列表。我找不出我的代码出了什么问题 package com.sib.Tmanager; import java.util.ArrayList; import java.util.Scanner; public class Employee { private String EmpFName; private String EmpLNa
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);
}
}
package com.sib.Tmanager;
导入java.util.ArrayList;
导入java.util.Scanner;
公营雇员{
私有字符串EmpFName;
私有字符串名称;
公共雇员(字符串empFName,字符串empLName){
超级();
EmpFName=EmpFName;
EmpLName=EmpLName;
}
公共字符串getEmpFName(){
返回EmpFName;
}
public void setEmpFName(字符串empFName){
EmpFName=EmpFName;
}
公共字符串getTempName(){
返回名称;
}
public void setEmpLName(字符串empLName){
EmpLName=EmpLName;
}
公共静态无效addEmployee()
{
ArrayList Emplist=新的ArrayList();
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入员工的名字”);
字符串Fname=s.next();
System.out.println(“输入员工的姓氏”);
字符串Lname=s.next();
员工emp=新员工(Fname,Lname);
雇主添加(emp);
//System.out.println(emp.EmpFName+“”+emp.empName);
System.out.println(雇主);
}
}
我试图通过重写ToString()方法来更改代码,但仍然有以下相同的输出
输入员工的名字
杰森
输入员工的姓氏
卡尔
[com.sib.t管理员。Employee@1a758cb]
您可以使用
Arrays.toString(empList.toArray(新员工[0]))
或empList.toString()
来打印ArrayList的内容。如果您在Employee
中重写toString()
,从publicstaticvoidmain()调用AddEmployee(),这将很好地打印出来
System.out.println(雇员列表)
您正在尝试打印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;
}
公共类员工{
私有字符串EmpFName;
私有字符串名称;
私人ArrayList雇主;
.
.
.
}
公共雇员(字符串empFName,字符串empLName){
超级();
ArrayList Emplist=新的ArrayList();
EmpFName=EmpFName;
EmpLName=EmpLName;
}
现在,当您需要添加时,只需执行以下操作:
此.Emplist.add(x)
在addEmployee方法中,这可能不是一个答案,而是关于类设计的一点建议
将员工
视为一个物理对象。
员工是否应该有名字?对
员工是否应该有姓氏?对
- 是否应在
员工
中填写其他员工是
?绝对不是
如果上述第三点没有意义,你应该怎么做?
- 创建一个名为
EmployeeList
的类。emplopyeelist
是否应该拥有员工
?当然啦李>
- 上面的类是您想要拥有
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);
}
}
}
注意:要将Employee
对象打印为字符串表示形式,您应该按照其他人的建议重写toString()
方法。我看不出您在哪里调用addEmployee
。还要重写toString()Employee
类中的
方法。我主要调用addEmployee方法,我没有粘贴到这里,因为那里没有任何错误。
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();
}