What is the difference between them? I know that
A LinkedHashSet is an ordered version of HashSet that maintains a doubly-linked List across all elements. Use this class instead of HashSet when you care about the iteration order. When you iterate through a HashSet the order is unpredictable, while a LinkedHashSet lets you iterate through the elements in the order in which they were inserted.
But in sourcecode of LinkedHashSet there are only calling constructors of HashSet. So where is double-linked List and insertion order?
The difference between the two are, as you've stated:
As for your question:
The answer lies in which constructors the
LinkedHashSetuses to construct the base class:And (one example of) a
HashSetconstructor that takes a boolean argument is described, and looks like this: