Collections.emptyList
is immutable so there is a difference between the two versions so you have to consider users of the returned value.
Returning new ArrayList<Foo>
always creates a new instance of the object so it has a very slight extra cost associated with it which may give you a reason to use Collections.emptyList
. I like using emptyList
just because it's more readable.