java - 将对象存储在 arraylist 中并返回这些对象

标签 java

import java.util.*;
import java.util.ArrayList;

class Employee{

    int eid;
    String eName;
    String eAddr;
    int eSalary;

    public Employee(int eid,String eName,String eAddr,int eSalary){
        this.eid   = eid;
        this.eName = eName;
        this.eAddr = eAddr;
        this.eSalary=eSalary;
    }
}

class EmployeeDB{

    ArrayList<Employee> al = new ArrayList<Employee>();

    public boolean addEmployee(Employee e){
        return al.add(e);
    }

    public Employee[] listAll() {
        Employee[] array = new Employee[al.size()];
        System.out.println("SIZE is : "+al.size());
        return al.toArray(array);
    }
}



public class Main
{
    public static void main(String[] args) {
        System.out.println("  ");

        Employee e1 = new Employee(111,"Employee-1","loc-1",100);
        EmployeeDB d1 = new EmployeeDB();
        d1.addEmployee(e1);


        Employee e2 = new Employee(222,"Employee-2","loc-2",200);
        EmployeeDB d2 = new EmployeeDB();
        d2.addEmployee(e2);

        EmployeeDB x = new EmployeeDB();
        Employee[] arr = x.listAll();

        for(Employee e : arr){
            System.out.println( e.eid );
            System.out.println( e.eName );
            System.out.println( e.eAddr );
            System.out.println("**************");
        }
    }
}


这里我向数组列表添加两个对象。最后我尝试在主类函数中显示这两个元素。

但是该元素没有被添加。万一添加两个对象后它告诉我数组列表的大小为 0,并且不显示任何元素。

所以请帮助我知道如何才能得到想要的结果。

最佳答案

在列出其中的所有员工之前,您尚未将任何员工实例添加到 EmployeeDB 中。相反,您将它们添加到不同的 EmployeeDB 实例中。尝试下面的代码片段。

public static void main(String[] args) {
        System.out.println("  ");

        Employee e1 = new Employee(111,"Employee-1","loc-1",100);
        Employee e2 = new Employee(222,"Employee-2","loc-2",200);

        EmployeeDB x = new EmployeeDB();
        x.addEmployee(e1);
        x.addEmployee(e2);
        Employee[] arr = x.listAll();

        for(Employee e : arr){
            System.out.println( e.eid );
            System.out.println( e.eName );
            System.out.println( e.eAddr );
            System.out.println("**************");
        }
    }

关于java - 将对象存储在 arraylist 中并返回这些对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59441483/

相关文章:

java - Intellij 无法识别 pom.xml 中的环境变量

java - Java中的JPanel与JFrame

java - 为什么这个数学函数在 Java 和 JavaScript 中返回不同的值?

java - Spring MVC : Using model. Controller中的addAttribute()发送各种Lists到Ajax方法

java - Activity 识别 API 未检测到位置变化 - Android OREO

java - Eclipse XML 编辑器显示 android1 不是 android 并且没有自动完成

java - 为什么不应该将所有函数参数都声明为 final?

java - 如何在 Play Framework 2.0 中加载 XML/HTML 资源

java - 如何计算JAVA中两个不同日期之间的工作(不包括周末)天数?

java - 当我加载 java 服务器时 Memcached 退出