In the book OCP Study Guide there is this example about a Comparator that can be initialized in two ways. The first is via an anonymous class like this:
<
In the first way you're creating a new anonymous class (that has a method with a behaviour).
In the second way you're just exposing the behaviour (consider this like a way to share a function, a method, without see the surrounding class even if it is created transparently).
I remember was explained clearly in the Java Tutorial - The Lambda Expressions
One issue with anonymous classes is that if the implementation of your anonymous class is very simple, such as an interface that contains only one method, then the syntax of anonymous classes may seem unwieldy and unclear. In these cases, you're usually trying to pass functionality as an argument to another method, such as what action should be taken when someone clicks a button. Lambda expressions enable you to do this, to treat functionality as method argument, or code as data.
I suggest to focus your mind that, using lambdas, you're trying just to expose a behaviour to some class or component, your example may be to the Collections.sort .
The lambdas give you the opportunity to have a more clear and simple expression avoiding the boilerplate of the anonymous class declarations.