одновременно может оказаться медленнее, чем последовательно, поэтому ваш код IMO просто в порядке.Это может быть немного улучшено:
return
yankeSquare.values()
.stream()
.flatMap(Set::stream)
.map(Square::getId)
.anyMatch(Predicate.isEqual(squareId)) ||
xraySquare.stream()
.map(Square::getId)
.anyMatch(Predicate.isEqual(squareId)) ||
zuluSquare.values()
.stream()
.flatMap(Set::stream)
.map(Square::getId)
.anyMatch(Predicate.isEqual(squareId))
Или даже проще, но не так лениво, как у вас есть в вашем коде:
Stream.concat(xraySquare.stream(),
Stream.of(yankeSquare, zuloSquare)
.flatMap(map -> map.values().stream().flatMap(Set::stream))
.map(Square::getId)
.anyMatch(Predicate.isEqual(squareId))
)
По сути, оно выравнивает все ваши Коллекции до Stream<String>
и сверьтесь с этим с anyMatch