Before I can talk about HashSets, I need to talk about Sets overall. A Set is a data structure, like ArrayLists (or Lists in some other languages), but like Stacks, Queues, etc., it is considered an Advanced Data Type in (ADT Java. There is an entire class on these data structures in college, and we go into some detail in HL. HL covers the material found in UW's CSE 145, which is considered to be general overview off data structures. That all aside, let's get into the main part of this.
I like to explain what a Set is using the concept of a Dictionary in C# and some other languages. This is not how Parker explains it, but it makes a advanced connection easier to grasp (I don't think it's that hard, but it's considered advanced). A Dictionary is declared liked this in C#:
Dictionary dict = new Dictionary();