While digging in ArrayList code I spotted this code fragment
  if ((lst = list) != null && (a = lst.elementData) != null) { ... } 
Now I really don't know what this expression is called, talking about (lst = list) != null, and why it is used like this. It every assignment in java returns an assigned object or what?