如何避免在Arraylist中嵌套循环以在Java中检索数据?

发布于 2025-01-26 08:49:55 字数 4332 浏览 2 评论 0原文

我们有POJO课程的员工和项目。虽然大师级具有项目的对象和项目列表的对象。我们还在主类中创建了主类中的阵列列表,其中分配和检索数据。

员工PO​​JO

public class Employee {
    Integer empID;
    String name;
    String desig;

    public Employee(Integer empID, String name, String desig) {
        this.empID = empID;
        this.name = name;
        this.desig = desig;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "empID=" + empID +
                ", name='" + name + '\'' +
                ", desig='" + desig + '\'' +
                '}';
    }

    public Integer getEmpID() {
        return empID;
    }

    public void setEmpID(Integer empID) {
        this.empID = empID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesig() {
        return desig;
    }

    public void setDesig(String desig) {
        this.desig = desig;
    }
}

Project Pojo

public class Project {

    Integer projID;
    String projName;
    String location;
    Integer empID;

    public Project(Integer projID, String projName, String location, Integer empID) {
        this.projID = projID;
        this.projName = projName;
        this.location = location;
        this.empID = empID;
    }

    public Integer getProjID() {
        return projID;
    }

    public void setProjID(Integer projID) {
        this.projID = projID;
    }

    public String getProjName() {
        return projName;
    }

    public void setProjName(String projName) {
        this.projName = projName;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public Integer getEmpID() {
        return empID;
    }

    public void setEmpID(Integer empID) {
        this.empID = empID;
    }

    @Override
    public String toString() {
        return "Project{" +
                "projID=" + projID +
                ", projName='" + projName + '\'' +
                ", location='" + location + '\'' +
                ", empID=" + empID +
                '}';
    }
}

Master Pojo

public class Master {
    Employee employee;
    ArrayList<Project> projects;

    public Employee getEmployee() {
        return employee;
    }

    public void setEmployee(Employee employee) {
        this.employee = employee;
    }

    public ArrayList<Project> getProjects() {
        return projects;
    }

    public void setProjects(ArrayList<Project> projects) {
        this.projects = projects;
    }

    public Master(Employee employee, ArrayList<Project> projects) {
        this.employee = employee;
        this.projects = projects;
    }

    @Override
    public String toString() {
        return "Master{" +
                "employee=" + employee +
                ", projects=" + projects +
                '}';
    }

}

Main类

public class Main {
    public static void main(String[] args) {

        ArrayList<Master> masters = new ArrayList<>();

        addData(masters);

        fetchData(masters);

    }

    private static void addData(ArrayList<Master> masters) {

        // WE ARE INITIALIZING MASTERS IN THIS BLOCK WITH DATA FROM DB
    }


    private static void fetchData(ArrayList<Master> masters) {

        for (int i = 0; i < masters.size(); i++) {
            System.out.println("Employee "+(i+1)+" "+masters.get(i).getEmployee().getEmpID()+" "
            +masters.get(i).getEmployee().getName()+" "+masters.get(i).getEmployee().getDesig());

            for (int j = 0; j < masters.get(i).getProjects().size(); j++) {
                System.out.println("Projects "+masters.get(i).getProjects().get(j).getProjID()+" "
                +masters.get(i).getProjects().get(j).getProjName()+" "+masters.get(i).getProjects().get(j).getLocation()
                +" "+masters.get(i).getProjects().get(j).getEmpID());

            }
        }
    }
}

如何在主类中的FetchData()方法中删除此嵌套以提高时间复杂性?

We have POJO classes Employee and Projects. While the Master class has the object of Employee and ArrayList of Projects. We are also creating an Arraylist of Master in Main class where data is assigned and retrieved.

Employee POJO

public class Employee {
    Integer empID;
    String name;
    String desig;

    public Employee(Integer empID, String name, String desig) {
        this.empID = empID;
        this.name = name;
        this.desig = desig;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "empID=" + empID +
                ", name='" + name + '\'' +
                ", desig='" + desig + '\'' +
                '}';
    }

    public Integer getEmpID() {
        return empID;
    }

    public void setEmpID(Integer empID) {
        this.empID = empID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesig() {
        return desig;
    }

    public void setDesig(String desig) {
        this.desig = desig;
    }
}

Project POJO

public class Project {

    Integer projID;
    String projName;
    String location;
    Integer empID;

    public Project(Integer projID, String projName, String location, Integer empID) {
        this.projID = projID;
        this.projName = projName;
        this.location = location;
        this.empID = empID;
    }

    public Integer getProjID() {
        return projID;
    }

    public void setProjID(Integer projID) {
        this.projID = projID;
    }

    public String getProjName() {
        return projName;
    }

    public void setProjName(String projName) {
        this.projName = projName;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public Integer getEmpID() {
        return empID;
    }

    public void setEmpID(Integer empID) {
        this.empID = empID;
    }

    @Override
    public String toString() {
        return "Project{" +
                "projID=" + projID +
                ", projName='" + projName + '\'' +
                ", location='" + location + '\'' +
                ", empID=" + empID +
                '}';
    }
}

Master POJO

public class Master {
    Employee employee;
    ArrayList<Project> projects;

    public Employee getEmployee() {
        return employee;
    }

    public void setEmployee(Employee employee) {
        this.employee = employee;
    }

    public ArrayList<Project> getProjects() {
        return projects;
    }

    public void setProjects(ArrayList<Project> projects) {
        this.projects = projects;
    }

    public Master(Employee employee, ArrayList<Project> projects) {
        this.employee = employee;
        this.projects = projects;
    }

    @Override
    public String toString() {
        return "Master{" +
                "employee=" + employee +
                ", projects=" + projects +
                '}';
    }

}

Main class

public class Main {
    public static void main(String[] args) {

        ArrayList<Master> masters = new ArrayList<>();

        addData(masters);

        fetchData(masters);

    }

    private static void addData(ArrayList<Master> masters) {

        // WE ARE INITIALIZING MASTERS IN THIS BLOCK WITH DATA FROM DB
    }


    private static void fetchData(ArrayList<Master> masters) {

        for (int i = 0; i < masters.size(); i++) {
            System.out.println("Employee "+(i+1)+" "+masters.get(i).getEmployee().getEmpID()+" "
            +masters.get(i).getEmployee().getName()+" "+masters.get(i).getEmployee().getDesig());

            for (int j = 0; j < masters.get(i).getProjects().size(); j++) {
                System.out.println("Projects "+masters.get(i).getProjects().get(j).getProjID()+" "
                +masters.get(i).getProjects().get(j).getProjName()+" "+masters.get(i).getProjects().get(j).getLocation()
                +" "+masters.get(i).getProjects().get(j).getEmpID());

            }
        }
    }
}

How to remove this nested for loop in the fetchData() method in the Main class, to improve the time complexity?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文