Yes, you can use the operation reduce:
BooleanExpression result = predicates.stream().reduce(BooleanExpression::and).orElseThrow(AssertionError::new);
This code will reduce all your predicates by and- each intermediate result.
Optional<BooleanExpression>, . , ( .get(0);), AssertionError. , .
, , BooleanExpression true ,
BooleanExpression result = predicates.stream().reduce(identity, BooleanExpression::and);