class B_F {
private String B_id;
private String F_id;
public String getB_id() {
return B_id;
}
public void setB_id(String b_id) {
B_id = b_id;
}
public String getF_id() {
return F_id;
}
public void setF_id(String f_id) {
F_id = f_id;
}
public B_F(String B_id, String F_id) {
this.B_id = B_id;
this.F_id = F_id;
}
}
class B {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public B(String id, String name) {
this.id = id;
this.name = name;
}
}
class C {
private String id;
private String B_id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getB_id() {
return B_id;
}
public void setB_id(String b_id) {
B_id = b_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public C(String id, String b_id, String name) {
this.id = id;
B_id = b_id;
this.name = name;
}
}
@Test
public void testAA() {
List<B_F> b_fList = new ArrayList<>();
B_F b_f1 = new B_F("b1", "F1");
B_F b_f2 = new B_F("b2", "F1");
B_F b_f3 = new B_F("b3", "F1");
B_F b_f4 = new B_F("b4", "F2");
b_fList.add(b_f1);
b_fList.add(b_f2);
b_fList.add(b_f3);
b_fList.add(b_f4);
List<B> bList = new ArrayList<>();
B b1 = new B("b1", "bName1");
B b2 = new B("b2", "bName2");
B b3 = new B("b3", "bName3");
bList.add(b1);
bList.add(b2);
bList.add(b3);
Map<String, B> bMap = bList.stream().collect(Collectors.toMap(B::getId, Function.identity()));
Map<String, List<B>> bfListBMap = b_fList.stream()
.collect(Collectors.groupingBy(
B_F::getF_id,
Collectors.mapping(bf -> bMap.get(bf.getB_id()), Collectors.toList())));
List<C> cList1 = new ArrayList<>();
C c1 = new C("c1", "b1", "cName1");
C c2 = new C("c2", "b1", "cName2");
C c3 = new C("c3", "b1", "cName3");
C c4 = new C("c4", "b2", "cName4");
C c5 = new C("c5", "b2", "cName5");
C c6 = new C("c6", "b3", "cName4");
C c7 = new C("c7", "b3", "cName5");
cList1.add(c1);
cList1.add(c2);
cList1.add(c3);
cList1.add(c4);
cList1.add(c5);
cList1.add(c6);
cList1.add(c7);
Map<String, List<C>> cMap = cList1.stream().collect(Collectors.groupingBy(C::getB_id));
// 这个lambda怎么转换为, Map<String, List<C>>
Map<String, List<List<C>>> bfListCMap = b_fList.stream()
.collect(Collectors.groupingBy(
B_F::getF_id,
Collectors.mapping(bf -> cMap.get(bf.getB_id()), Collectors.toList())));
}
// 这个lambda, Map<String, List<List<C>>> 怎么转换为 Map<String, List<C>>