Last time we talked about TreeSet
in Java: Java TreeSet. This blog is just to provide a quick summary of the comparison between HashSet
and TreeSet
.
Characteristic of HashSet
- The order of the elements cannot be guaranteed. The order stored may be different from the order of addition and may change later
HashSet
is NOT synchronized. If multiple threads access aHashSet
at the same time and threads modify theHashSet
elements, the code must be used to ensure its synchronization- The elements of
HashSet
can be null
Characteristic of TreeSet
- Elements in
TreeSet
is ordered. After the element is inserted, it will be arranged according to a specified order TreeSet
is NOT synchronized.- The elements of
TreeSet
can’t be null
Differences
HashSet
is implemented by hash table. The data inHashSet
is unordered and can be put into null, but only one null is allowed.TreeSet
is implemented by binary tree. The data inTreeset
is sorted automatically, and null values are not allowed.- The values in
TreeSet
andHashSet
can not be repeated, just like the only constraint in the database. HashSet
requires that the objects placed must implement theHashCode()
method. The objects placed are identified by the hash code.- The
String
objects with the same content have the same hashcode, so the content cannot be repeated. But objects of the same class can be put into different instances.
- The