HashSet<E> class

A custom implementation of a hash set that implements the Set<E> interface.

This HashSet stores unique elements and provides constant-time operations for insertion, removal, and lookup in the average case.

It uses open addressing with chaining to resolve hash collisions: each bucket is a list of values (List<E>) that share the same hash index.

When the load factor (size / capacity) exceeds 0.75, the internal bucket array is resized to maintain efficiency.


βš™οΈ Design Highlights:

  • Uses _buckets: List<List<E>?> for collision handling
  • On collision: appends to the list in the corresponding bucket
  • Grows dynamically when usage exceeds load factor threshold

πŸ“¦ Example Usage:

final set = HashSet<String>();
set.add('apple');
set.add('banana');
set.add('apple'); // Duplicate, ignored

print(set.contains('banana')); // true
print(set.length); // 2
print(set); // {apple, banana}
Implemented types
Available extensions
Annotations

Constructors

HashSet()
A custom implementation of a hash set that implements the Set<E> interface.

Properties

first β†’ E
The first element.
no setteroverride
firstOrNull β†’ T?

Available on Iterable<T>, provided by the IterableExtensions extension

The first element of this iterator, or null if the iterable is empty.
no setter
hashCode β†’ int
The hash code for this object.
no setterinherited
indexed β†’ Iterable<(int, T)>

Available on Iterable<T>, provided by the IterableExtensions extension

Pairs of elements of the indices and elements of this iterable.
no setter
isEmpty β†’ bool
Whether this collection has no elements.
no setteroverride
isNotEmpty β†’ bool
Whether this collection has at least one element.
no setteroverride
iterator β†’ Iterator<E>
An iterator that iterates over the elements of this set.
no setteroverride
last β†’ E
The last element.
no setteroverride
lastOrNull β†’ T?

Available on Iterable<T>, provided by the IterableExtensions extension

The last element of this iterable, or null if the iterable is empty.
no setter
length β†’ int
The number of elements in this Iterable.
no setteroverride
nonNulls β†’ Iterable<T>

Available on Iterable<T?>, provided by the NullableIterableExtensions extension

The non-null elements of this iterable.
no setter
runtimeType β†’ Type
A representation of the runtime type of the object.
no setterinherited
single β†’ E
Checks that this iterable has only one element, and returns that element.
no setteroverride
singleOrNull β†’ T?

Available on Iterable<T>, provided by the IterableExtensions extension

The single element of this iterator, or null.
no setter
wait β†’ Future<List<T>>

Available on Iterable<Future<T>>, provided by the FutureIterable extension

Waits for futures in parallel.
no setter

Methods

add(E element) β†’ bool
Adds value to the set.
override
addAll(Iterable<E> elements) β†’ void
Adds all elements to this set.
override
all(ConditionTester<T> test) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks whether all elements of this iterable satisfy test.
any(bool test(E element)) β†’ bool
Checks whether any element of this iterable satisfies test.
override
asNameMap() β†’ Map<String, T>

Available on Iterable<T>, provided by the EnumByName extension

Creates a map from the names of enum values to the values.
byName(String name) β†’ T

Available on Iterable<T>, provided by the EnumByName extension

Finds the enum value in this list with name name.
cast<R>() β†’ Set<R>
Provides a view of this set as a set of R instances.
override
clear() β†’ void
Removes all elements from the set.
override
contains(Object? element) β†’ bool
Whether value is in the set.
override
containsAll(Iterable<Object?> other) β†’ bool
Whether this set contains all the elements of other.
override
difference(Set<Object?> other) β†’ Set<E>
Creates a new set with the elements of this that are not in other.
override
elementAt(int index) β†’ E
Returns the indexth element.
override
elementAtOrNull(int index) β†’ T?

Available on Iterable<T>, provided by the IterableExtensions extension

The element at position index of this iterable, or null.
every(bool test(E element)) β†’ bool
Checks whether every element of this iterable satisfies test.
override
expand<T>(Iterable<T> toElements(E element)) β†’ Iterable<T>
Expands each element of this Iterable into zero or more elements.
override
filter(ConditionTester<T> test) β†’ Iterable<T>

Available on Iterable<T>, provided by the IterableExtension extension

Filters elements based on a predicate (alias for where).
filterWhere(ConditionTester<T> test) β†’ Iterable<T>

Available on Iterable<T>, provided by the IterableExtension extension

Filters elements based on a predicate.
find(ConditionTester<T> test) β†’ T?

Available on Iterable<T>, provided by the IterableExtension extension

Finds the first element that satisfies the given predicate.
findIndex(ConditionTester<T> test) β†’ int

Available on Iterable<T>, provided by the IterableExtension extension

Finds the index of the first element that satisfies the given predicate.
firstWhere(bool test(E element), {E orElse()?}) β†’ E
The first element that satisfies the given predicate test.
override
firstWhereOrNull(ConditionTester<T> test) β†’ T?

Available on Iterable<T>, provided by the IterableExtension extension

Returns the first element that satisfies the predicate or null if none match.
flatMap<E>(Iterable<E> selector(T item)) β†’ Iterable<E>

Available on Iterable<T>, provided by the IterableExtension extension

Flattens lists of items into a single iterable.
flatten<E>(E? selector(T item)) β†’ Iterable<E>

Available on Iterable<T>, provided by the IterableExtension extension

Transforms each element of the iterable into zero or more elements of type E and flattens the results.
flattenIterable<E>(Iterable<E>? selector(T item)) β†’ Iterable<E>

Available on Iterable<T>, provided by the IterableExtension extension

Transforms each element of the iterable into zero or more results of type E, and flattens the resulting collections into a single iterable.
fold<T>(T initialValue, T combine(T previousValue, E element)) β†’ T
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
override
followedBy(Iterable<E> other) β†’ Iterable<E>
Creates the lazy concatenation of this iterable and other.
override
forEach(void action(E element)) β†’ void
Invokes action on each element of this iterable in iteration order.
override
get([int index = 0]) β†’ T

Available on Iterable<T>, provided by the IterableExtension extension

Returns the element at the specified index.
getFirst() β†’ T

Available on Iterable<T>, provided by the IterableExtension extension

Returns the first element of the iterable.
getLast() β†’ T

Available on Iterable<T>, provided by the IterableExtension extension

Returns the last element of the iterable.
group<K>(K keySelector(T item)) β†’ Map<K, List<T>>

Available on Iterable<T>, provided by the IterableExtension extension

Groups the elements of the iterable by a key returned from the keySelector function.
groupBy<K>(K keySelector(T item)) β†’ Map<K, List<T>>

Available on Iterable<T>, provided by the IterableExtension extension

Groups elements of this iterable into a Map using the given keySelector.
groupByAndMap<K, V>(K keySelector(T item), V valueSelector(T item)) β†’ Map<K, List<V>>

Available on Iterable<T>, provided by the IterableExtension extension

Groups elements of this iterable into a Map using keySelector, and applies valueSelector to each element before storing it.
indexWhereOrNull(ConditionTester<T> test) β†’ int?

Available on Iterable<T>, provided by the IterableExtension extension

Finds the index of an element that satisfies the predicate or returns null if not found.
intersection(Set<Object?> other) β†’ Set<E>
Creates a new set which is the intersection between this set and other.
override
isLengthBetween(int min, int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is BETWEEN minLength to max.
isLengthEqualTo(int other) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is EQUAL to max.
isLengthEt(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Short form for isLengthEqualTo
isLengthGreaterThan(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is GREATER than max.
isLengthGreaterThanOrEqualTo(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is GREATER OR EQUAL to max.
isLengthGt(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Short form for isLengthGreaterThan
isLengthGtEt(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Short form for isLengthGreaterThanOrEqualTo
isLengthLessThan(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is LESS than max.
isLengthLessThanOrEqualTo(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if length of double value is LESS OR EQUAL to max.
isLengthLt(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Short form for isLengthLessThan
isLengthLtEt(int max) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Short form for isLengthLessThanOrEqualTo
isSubsetOf(Set<Object?> other) β†’ bool

Available on Set<Object?>, provided by the SetUtils extension

Utility extension methods for working with sets in Dart.
isSupersetOf(Set<Object?> other) β†’ bool

Available on Set<Object?>, provided by the SetUtils extension

Utility extension methods for working with sets in Dart.
join([String separator = ""]) β†’ String
Converts each element to a String and concatenates the strings.
override
lastWhere(bool test(E element), {E orElse()?}) β†’ E
The last element that satisfies the given predicate test.
override
lastWhereOrNull(ConditionTester<T> test) β†’ T?

Available on Iterable<T>, provided by the IterableExtension extension

Returns the last element that satisfies the predicate or null if none match.
lookup(Object? element) β†’ E?
If an object equal to object is in the set, return it.
override
map<T>(T toElement(E e)) β†’ Iterable<T>
The current elements of this iterable modified by toElement.
override
none(ConditionTester<T> test) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if no element matches the predicate.
noneMatch(ConditionTester<T> test) β†’ bool

Available on Iterable<T>, provided by the IterableExtension extension

Checks if none of the elements match a condition using noneMatch.
noSuchMethod(Invocation invocation) β†’ dynamic
Invoked when a nonexistent method or property is accessed.
inherited
process(dynamic action(T item)) β†’ void

Available on Iterable<T>, provided by the IterableExtension extension

Processes each element of the iterable using the provided action function.
reduce(E combine(E value, E element)) β†’ E
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
override
remove(Object? value) β†’ bool
Removes value from the set.
override
removeAll(Iterable<Object?> elements) β†’ void
Removes each element of elements from this set.
override
removeWhere(bool test(E element)) β†’ void
Removes all elements of this set that satisfy test.
override
retainAll(Iterable<Object?> elements) β†’ void
Removes all elements of this set that are not elements in elements.
override
retainWhere(bool test(E element)) β†’ void
Removes all elements of this set that fail to satisfy test.
override
singleWhere(bool test(E element), {E orElse()?}) β†’ E
The single element that satisfies test.
override
skip(int count) β†’ Iterable<E>
Creates an Iterable that provides all but the first count elements.
override
skipWhile(bool test(E value)) β†’ Iterable<E>
Creates an Iterable that skips leading elements while test is satisfied.
override
sortedByPublicFirst() β†’ List<T>

Available on Iterable<T>, provided by the SortByPublic extension

Sorts declarations with public visibility before private ones.
sortedByPublicFirstThenSyntheticLast() β†’ List<T>

Available on Iterable<T>, provided by the SortByPublic extension

Sorts declarations with public visibility first and synthetic declarations last.
stream() β†’ GenericStream<T>

Available on Iterable<T>, provided by the IterableExtension extension

Converts the iterable to a stream.
take(int count) β†’ Iterable<E>
Creates a lazy iterable of the count first elements of this iterable.
override
takeWhile(bool test(E value)) β†’ Iterable<E>
Creates a lazy iterable of the leading elements satisfying test.
override
toList({bool growable = true}) β†’ List<E>
Creates a List containing the elements of this Iterable.
override
toMap<K, V>(K keySelector(T item), V valueSelector(T item)) β†’ Map<K, V>

Available on Iterable<T>, provided by the IterableExtension extension

Maps the iterable to a new iterable using the provided mapper function.
toSet() β†’ Set<E>
Creates a Set with the same elements and behavior as this Set.
override
toString() β†’ String
A string representation of this object.
override
union(Set<E> other) β†’ Set<E>
Creates a new set which contains all the elements of this set and other.
override
where(bool test(E element)) β†’ Iterable<E>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
override
whereOrNull(ConditionTester<T> test) β†’ Iterable<T>?

Available on Iterable<T>, provided by the IterableExtension extension

Returns an iterable with elements that match a condition, or null if none match.
whereType<U>() β†’ Iterable<T>

Available on Iterable<T>, provided by the IterableExtension extension

Filters elements of a specific type T.
whereType<T>() β†’ Iterable<T>
Creates a new lazy Iterable with all elements that have type T.
override

Operators

operator ==(Object other) β†’ bool
The equality operator.
inherited