I explained this at the 25-minute point of this video:
https://youtu.be/ZeO_J2OcHYM?t=1495
Sorry for the lazy answer, but this is after all only a “why” question (arguably not appropriate to StackOverflow?).
EDIT: Here’s another point I’m not sure I made clear in the video: the total (across all of the world’s Java code), amount of extra code that has to be written for those null-friendly cases to use the old standbys Collections.unmodifiableList(Arrays.asList(...)) etc. is overwhelmed by the total (across all of the world’s Java code) amount of extra checkArgument(!foos.contains(null)) calls everyone would need to add if our collections didn’t take care of that for you. Most, by FAR, usages of a collection do not expect any nulls to be present, and really should fail fast if any are.