Java 从两个相关列表中检索数据

Java 从两个相关列表中检索数据,java,Java,我有两张单子和一张单子。 AList中的元素是child,BList中的元素是parent。一个孩子可以有多个父母。表示列表第0个索引处的元素是否可以在BList中有一个以上的父元素。 我想以这样一种方式从这些列表中检索数据,以便我能为每个孩子找到父母 假设第0个元素是子元素,并且在父元素列表中有三个父元素,那么我希望检索该子元素的所有父元素 我该怎么做 Child Parent A 2A,3A, 4A 等等 请帮忙我认为最好的方法是使用地图。在这种情况下,子对象将是一个键,

我有两张单子和一张单子。 AList中的元素是child,BList中的元素是parent。一个孩子可以有多个父母。表示列表第0个索引处的元素是否可以在BList中有一个以上的父元素。 我想以这样一种方式从这些列表中检索数据,以便我能为每个孩子找到父母

假设第0个元素是子元素,并且在父元素列表中有三个父元素,那么我希望检索该子元素的所有父元素

我该怎么做

Child  Parent
A         2A,3A, 4A
等等


请帮忙

我认为最好的方法是使用地图。在这种情况下,子对象将是一个键,父对象集将是一个值

所以您可以在子类中创建Set字段,然后创建子对象并将父对象添加到它们的集合中(您需要创建自己的方法,将父对象添加到父对象的子集合中,如addParents())。毕竟,将要映射的子对象作为键,将父对象集作为值

例如->

Map<Child, Set<Parent>> map = new HashMap();
Child a = new Child();
Parent p = new Parent();
a.addParent(p);
map.put(a, a.getListOfParents());
Map Map=newhashmap();
子项a=新子项();
父级p=新父级();
a、 添加亲本(p);
put(a,a.getListOfParents());

像这样的东西怎么样

    // 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));
给出:

{A=[1A, 2A, 3A], B=[4B, 5B], C=[6C]}

你试过什么?这是为了上学还是孩子知道谁是他们的父母?列表中存储了什么类型的对象?字符串?是的,有字符串在计算机俚语中,一个“父”有几个“子”,反之亦然。列表的映射方式是,如果索引1是子级,那么它的父级也将位于父列表的索引1中。我尝试使用类似于此的映射来(int i=0;iTo从集合中接收数据,但不能用于循环-它无法正常工作。您需要使用迭代器。:)但请记住,同一迭代器对象只能使用一次。如果可能,请告诉我如何使用迭代器和我的条件迭代器迭代器=setOfParents.Iterator();但是,您可能可以尝试按如下方式获取每个循环的所有父对象:for(Parent p:childObject.getSetOfParents){}
{A=[1A, 2A, 3A], B=[4B, 5B], C=[6C]}