I think this is actually a nice and free optimization: when we search for `null`, there's no need to execute the whole `item == null ? this[i] == null : item.equals(this[i])` comparison on each iteration, since nullability of `item` doesn't change throughout the loop. Effectively fewer bytecode instructions are executed, specifically conditional jumps (1 vs size). I believe @jrenner used `java.util.AbstractCollection#contains` as a reference, sorry if I'm wrong