我有两个列表AList和BList。 AList中的元素是子元素,BList中的元素是父元素。一个孩子可以有一个以上的父母。表示如果AList的第0个索引处的元素在BList中可以有一个以上的父项。 我想从这些列表中检索数据,以便每个孩子都能得到父母。
假设第0个元素是子元素并且在父列表中有三个父元素,那么我想要检索该子元素的所有父元素。
我该怎么做?
Child Parent
A 2A,3A, 4A
等等
请帮忙
答案 0 :(得分:2)
我认为最好的方法是使用地图。在这种情况下,Child对象将是一个键,父对象将是一个值;
因此,您可以在Child类中创建Set字段,然后创建子对象并将父对象添加到其Set中(您需要创建自己的方法,将父级添加到子setOfParents - 如addParents())。毕竟,将Child对象映射为键,将父对象映射为值。
例如 - >
Map<Child, Set<Parent>> map = new HashMap();
Child a = new Child();
Parent p = new Parent();
a.addParent(p);
map.put(a, a.getListOfParents());
答案 1 :(得分:0)
这样的事情怎么样?
// given are
List<String> a = Arrays.asList("A", "B", "C");
List<String> b = Arrays.asList("1A", "2A", "3A", "4B", "5B", "6C");
// map parents and children
Map<String, List<String>> map = new HashMap<>();
a.forEach(x -> map.put(x, new ArrayList<>()));
b.forEach(x -> map.get(x.substring(x.length() - 1)).add(x));
这导致与孩子的父母的地图。并且
System.out.println(map);
给出:
{A=[1A, 2A, 3A], B=[4B, 5B], C=[6C]}