If you want to cover many possibilities, here is one more. Not necessarily the best.
Set
A Set in Java eliminates duplicates. This includes the value null, only one allowed.
So make a Set of your List. If no values, the set is empty. If only nulls were present in list, then set has only one element — so test if it is a null. If multiple elements in set, then we know they original list has some non-null values.
Sample data:
List < String > list = new ArrayList <> ( );
list.add ( null );
list.add ( null );
list.add ( null );
Logic:
Set < String > set = new HashSet <> ( list ); // Make a `Set` of our `List`. Duplicates ignored, including multiple `null` values.
set.remove ( null ); // If list were all nulls, we have a single null element in our set — so remove it, if it exits.
boolean emptyOrAllNulls = set.isEmpty ( );
emptyOrAllNulls = true
ArrayList only returns 10 null items.isEmtpy()method.isEmpty()would be the correct method.