Я пытаюсь сравнить элементы, используя потоки из запроса с двумя подэлементами, с объектом, который содержит эти элементы как дочерние объекты.
Например:
базовый объект:
public class Domain {
long id;
List<Software> softwares;
List<Hardware> hardwares;
}
дочерние объекты:
public class software {
String part;
String did;
}
public class hardware {
String part;
}
У меня есть запрос с массивом softwares
и одним hardware
, как показано ниже
{
"softwares":[
{
"part":"abc",
"did":"000"
},
{
"part":"bcd",
"did":"001"
}
],
"hardware": {
"part":"caltop"
}
}
И я пытаюсь найтиDomain
потоковый список domains
, который содержит все программное обеспечение в запросе и аппаратное обеспечение, при условии, что в Домене может быть больше программного и аппаратного обеспечения, но ему просто нужно содержать программное и аппаратное обеспечение, чтобы иметь возможность рассмотреть совпадение.
Я начал с
domains.stream()
.filter(domain -> domain.getSoftwares().contains(request.getSoftwares())
&& domain.getHardwares().stream().anyMatch(request.getHardware()))
.collect(Collectors.toList());
, но это неправильно, и я ничего не мог продвинуть.Я хочу попробовать сделать это с помощью потоков