尽量避免循环访问数据库,所以选择先把list放在Map中,再由第二个for循环通过键取值
List<A> listA = getObjects(A.class); Map<Long,Object> mapA = new HashMap<String,Object>(); /*这里map的key是Object中的某一字段的类型,可以是int,string,long之类的*/ for(A a : listA){ mapA.put(a.getId(),a); } List<B> listB = getObjects(B.class); Map<String, Object> A_B = new HashMap<String, Object>(); for(B b : listB){ A a = mapA.get(b.getAId()); A_B.put("B",b); A_B.put("A",a); }
/*这样就避免了N次查询数据库,提高执行效率了*/