Collection对象无法显示在java,Arraylist,Collection中显示某些
发布时间:2020-12-15 04:24:08 所属栏目:Java 来源:网络整理
导读:当我尝试打印集合对象时,它会打印Employee @ 122392Iie92.为什么打印这个而不是员工列表的详细信息? 我的代码: public class Employee { private String name; private String designation; private int employeeId; private int salary; public String ge
当我尝试打印集合对象时,它会打印Employee @ 122392Iie92.为什么打印这个而不是员工列表的详细信息?
我的代码: public class Employee { private String name; private String designation; private int employeeId; private int salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDesignation() { return designation; } public void setDesignation(String designation) { this.designation = designation; } public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } } import java.util.ArrayList; import java.util.Scanner; public class EmployeeManagement { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { // TODO Auto-generated method stub ArrayList <Employee> lst = new ArrayList <Employee> (); System.out.println("Enter the number of employees : "); int num = sc.nextInt(); EmployeeManagement emp = new EmployeeManagement(); emp.addEmployeeName( num,lst); } public void addEmployeeName(int num,ArrayList<Employee> lst) { Employee em = new Employee(); for(int i =0; i<num ; i++) { System.out.println("Enter the employee id : "); em.setEmployeeId(sc.nextInt()); System.out.println("Enter the name of employee : "); em.setName(sc.next()); System.out.println("Enter the designation of employee : "); em.setDesignation(sc.next()); System.out.println("Enter the Salary of employees : "); em.setSalary(sc.nextInt()); lst.add(em); } System.out.println(lst); } } 解决方法
它使用Object类的默认toString方法进行打印.如果要显示值,则需要在Employee类中覆盖toString.它目前显示的是类名和哈希码.
在Employee中写一个这样的toString方法: @Override public String toString(){ SubString sb = new SubString(); sb.append("Name :- ")append(name).append(id); //all relevant fields return sb.toString(); } 在循环内移动新语句,否则您将一次又一次地添加和更新同一对象. public void addEmployeeName(int num,ArrayList<Employee> lst) { for(int i =0; i<num ; i++) { Employee em = new Employee(); System.out.println("Enter the employee id : "); em.setEmployeeId(sc.nextInt()); System.out.println("Enter the name of employee : "); em.setName(sc.next()); System.out.println("Enter the designation of employee : "); em.setDesignation(sc.next()); System.out.println("Enter the Salary of employees : "); em.setSalary(sc.nextInt()); lst.add(em); } System.out.println(lst); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |