Checking if a collection is empty in Java: which is the best method?
collections, is-empty, java
Solution
You should absolutely use `isEmpty()`. Computing the `size()` of an arbitrary list could be expensive. Even validating whether it has any elements can be expensive, of course, but there's no optimization for `size()` which can't also make `isEmpty()` faster, whereas the reverse is not the case.
For example, suppose you had a linked list structure which didn't cache the size (whereas `LinkedList<E>` does). Then `size()` would become an O(N) operation, whereas `isEmpty()` would still be `O(1)`.
Additionally of course, using `isEmpty()` states what you're actually interested in more clearly.
Problem
I have two ways of checking if a List is empty or not ``` if (CollectionUtils.isNotEmpty(listName)) ``` and ``` if (listName != null && listName.size() != 0) ``` My arch tells me that the former is better than latter. But I think the latter is better. Can anyone please clarify it?