Creating many small objects is close to free (allocation and GC), with the caveat that GC will run more often, so there is a slight performance cost associated with it. Creating anonymous inner classes also has specific issues - this question has several answers that address that aspect.
However creating a lambda, as in:
String firstNonEmpty = Lists.find(list, (s) -> !s.isEmpty());
does not necessarily create a new object. In particular, for stateless lambdas like that one, the JVM should only create one lambda "object" and reuse it.