When you call isEmpty(), it clearly communicates the code’s intention, which is to check if the collection is empty. Using
size() == 0 for this purpose is less direct and makes the code slightly more complex.
Moreover, depending on the implementation, the size() method can have a time complexity of O(n) where n is
the number of elements in the collection. On the other hand, isEmpty() simply checks if there is at least one element in the collection,
which is a constant time operation, O(1).
public class MyClass {
public void doSomething(Collection<String> myCollection) {
if (myCollection.size() == 0) { // Noncompliant
doSomethingElse();
}
}
}
Prefer using isEmpty() to test for emptiness over size().
public class MyClass {
public void doSomething(Collection<String> myCollection) {
if (myCollection.isEmpty()) {
doSomethingElse();
}
}
}