Right now I'm avoiding just iterating through the whole array to avoid
delay. Any solutions I could use?
It will not cause any delay if you stop iterating as soon as you detected a collision.
If you manipulate a Rectangle2D instance, you could use this overloaded instance method :
public boolean intersects(Rectangle2D r)
And to exit from the iteration as soon a match is done, you could use the anyMatch() predicate :
Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(brick -> brick.intersects(ball2D));
You can also do it by using a method reference with the ball2D variable as target of:
Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(ball2D::intersects);