当我查询我的数据库时,它会返回我,其中包含父级,子级和孙子级。我想将此树关系的映射构建为 。我想知道建立这种关系的最快方法。List<Object[]>object[]Map<Parent, Map<Child, List<GrandChild>>>
我可以通过将我的数据库查询分解为多个查询来做到这一点,例如首先构建,然后使用每个查询来检索孙子列表,但是如果元素计数很高,此选项将成倍增加我需要查询DB的次数,或者使用以下代码将List转换为Map。Map<Parent, List<Child>>List<Child>
private Map<Long, Map<String, List<String>>> objectListToMap(List<Object[]> list) {
Map<Long, Map<String, List<String>>> hmap = new HashMap<>();
for (Object[] object : list) {
Map<String, List<String>> innerMap = new HashMap<>();
if (!hmap.containsKey(Long.parseLong(object[0].toString()))) {
hmap.put(Long.parseLong(object[0].toString()), innerMap);
}
for (Object[] object1 : list) {
if (Long.valueOf(object[0].toString()).equals(Long.valueOf(object1[0].toString()))) {
if (!innerMap.containsKey(object1[1].toString())) {
innerMap.put(object1[1].toString(), new ArrayList<String>());
}
innerMap.get(object1[1].toString()).add(object1[2].toString());
}
}
hmap.get(Long.valueOf(object[0].toString())).putAll(innerMap);
}
return hmap;
}
请让我知道我如何减少处理时间。
慕的地6264312
相关分类