java.util.Collection
or java.util.Map
is the collection or map itself.
Such situations may occur as a result of copy-paste in code with raw types.
Example:
ArrayList list = new ArrayList<>();
list.add(list); // warning here
return list.hashCode(); // throws StackOverflowError