title: Internal flow of lambda expression and how its identifies type of argument
body: <p>I have created class called Movie and while collections sort method I have used lambda expression.</p>
  <p><strong>Some thing like :</strong></p>
  <p><code>Collections.sort(movieList, (o1,o2)-&gt;{return o1.getMoviesName().compareTo(o2.getMoviesName());});</code></p>
  <p>Its working fine and i am happy to see that but when I am trying to understand its structure i am unable to do that. how lambda find that o1 and o2 argumnet is type of movies because I haven't describe that o1 and o2 belong to Movie object.
  Please help me to understand internal flow of lambda expression. As most tutorial only gives syntax and usage info only.</p>