если у меня два списка.
первый - это список:
[
{
"A":"code1"
"B":"1"
},
{
"A":"code2"
"B":"1,2"
},
{
"A":"code3"
"B":"2,3"
}
]
, а второй - список:
[
{
"C":"target1"
"D":"1"
},
{
"C":"target2"
"D":"2"
},
{
"C":"target3"
"D":"3"
}
]
теперь мне нужна новая карта
"code1" = "target1","code2" = "target1,target2","code3" = "target2,target3"
правило, когда
List<Object1>.getB().contains(List<Object2>.getD())
Я сопоставляю его с новой картой, заменим C на B.
Я могу использовать double для сделайте это.
например:
public void dosome(){
Map<String,List<String>> map = new HashMap<>();
for(Object1 object1 : object1s){
List<String> list = new ArrayList<>();
for(Object2 object2 : object2s){
if(object1.getB().contains(object2.getD())){
list.add(object2.getC());
}
}
map.put(object1.getA(),list);
}
System.out.println(map);
}
Но я хочу изменить использование двойного круга "for" на использование stream () (java8), чтобы сделать мой код красивее!