Sunday, March 03, 2024 21:34

Table of contents >> Data Structures > Hash Set

Hash Set

There are two types of Sets in the System.Collections.Generic namespace: SortedSet and HashSet. Both of them offer the functionality of storing non-duplicate items. The main difference between them is the fact that the SortedSet obviously has its items sorted. Therefor, if you do not care about the order in which the items are stored, you are better off performance-wise to use a HashSet. It will be slightly faster. In comparison with a List, a HashSet has a bit slower adding of elements. However, searching, reading or deleting elements is much, much faster, due to the hashing of the elements.

HashSet doesn’t have a capacity set. Its capacity increases along with the addition of elements.

We can directly assign the elements of an array to a HashSet, and the duplicate entries will be removed:

The HashSet object does not allow duplicate entry, hence the result will show the count of the data present in the HashSet less than the array count. The output will look like this:

The most important methods of the HashSet class are the following:

UnionWith() – we can use this method to union (join) the elements already contained in a HashSet with the elements of another collection.

The result would be:

Notice that the duplicate elements were removed from the merged HashSet.

ExceptWith() – This method is the complementary of UnionWith() – it will remove all the elements that are contained in both data structures, including the duplicate elements.

SymmetricExceptWith() – This modifies the final HashSet to include only the results that are present in one of the HashSet, but not both. All the matching elements will be removed.

The most important property of the HashSet is:

Count – returns an integer representing the total number of elements in the HashSet.

Tags: ,

Leave a Reply

Follow the white rabbit