Core Java How Does Hashset Work Internally? Implementation Why Are Its Elements Unique?