如何避免在Arraylist中嵌套循环以在Java中检索数据?
我们有POJO课程的员工和项目。虽然大师级具有项目的对象和项目列表的对象。我们还在主类中创建了主类中的阵列列表,其中分配和检索数据。
员工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类
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论