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}
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<
The first element of this iterator, orT> , provided by the IterableExtensions extensionnull
if the iterable is empty.no setter - hashCode β int
-
The hash code for this object.
no setterinherited
-
indexed
β Iterable<
(int, T)> -
Available on Iterable<
Pairs of elements of the indices and elements of this iterable.T> , provided by the IterableExtensions extensionno 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<
The last element of this iterable, orT> , provided by the IterableExtensions extensionnull
if the iterable is empty.no setter - length β int
-
The number of elements in this Iterable.
no setteroverride
-
nonNulls
β Iterable<
T> -
Available on Iterable<
The non-T?> , provided by the NullableIterableExtensions extensionnull
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<
The single element of this iterator, orT> , provided by the IterableExtensions extensionnull
.no setter -
wait
β Future<
List< T> > -
Available on Iterable<
Waits for futures in parallel.Future< , provided by the FutureIterable extensionT> >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<
Checks whether all elements of this iterable satisfyT> , provided by the IterableExtension extensiontest
. -
any(
bool test(E element)) β bool -
Checks whether any element of this iterable satisfies
test
.override -
asNameMap(
) β Map< String, T> -
Available on Iterable<
Creates a map from the names of enum values to the values.T> , provided by the EnumByName extension -
byName(
String name) β T -
Available on Iterable<
Finds the enum value in this list with nameT> , provided by the EnumByName extensionname
. -
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
index
th element.override -
elementAtOrNull(
int index) β T? -
Available on Iterable<
The element at positionT> , provided by the IterableExtensions extensionindex
of this iterable, ornull
. -
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<
Filters elements based on a predicate (alias forT> , provided by the IterableExtension extensionwhere
). -
filterWhere(
ConditionTester< T> test) β Iterable<T> -
Available on Iterable<
Filters elements based on a predicate.T> , provided by the IterableExtension extension -
find(
ConditionTester< T> test) β T? -
Available on Iterable<
Finds the first element that satisfies the given predicate.T> , provided by the IterableExtension extension -
findIndex(
ConditionTester< T> test) β int -
Available on Iterable<
Finds the index of the first element that satisfies the given predicate.T> , provided by the IterableExtension extension -
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<
Returns the first element that satisfies the predicate orT> , provided by the IterableExtension extensionnull
if none match. -
flatMap<
E> (Iterable< E> selector(T item)) β Iterable<E> -
Available on Iterable<
Flattens lists of items into a single iterable.T> , provided by the IterableExtension extension -
flatten<
E> (E? selector(T item)) β Iterable< E> -
Available on Iterable<
Transforms each element of the iterable into zero or more elements of typeT> , provided by the IterableExtension extensionE
and flattens the results. -
flattenIterable<
E> (Iterable< E> ? selector(T item)) β Iterable<E> -
Available on Iterable<
Transforms each element of the iterable into zero or more results of typeT> , provided by the IterableExtension extensionE
, 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<
Returns the element at the specified index.T> , provided by the IterableExtension extension -
getFirst(
) β T -
Available on Iterable<
Returns the first element of the iterable.T> , provided by the IterableExtension extension -
getLast(
) β T -
Available on Iterable<
Returns the last element of the iterable.T> , provided by the IterableExtension extension -
group<
K> (K keySelector(T item)) β Map< K, List< T> > -
Available on Iterable<
Groups the elements of the iterable by a key returned from theT> , provided by the IterableExtension extensionkeySelector
function. -
groupBy<
K> (K keySelector(T item)) β Map< K, List< T> > -
Available on Iterable<
Groups elements of this iterable into a Map using the givenT> , provided by the IterableExtension extensionkeySelector
. -
groupByAndMap<
K, V> (K keySelector(T item), V valueSelector(T item)) β Map< K, List< V> > -
Available on Iterable<
Groups elements of this iterable into a Map usingT> , provided by the IterableExtension extensionkeySelector
, and appliesvalueSelector
to each element before storing it. -
indexWhereOrNull(
ConditionTester< T> test) β int? -
Available on Iterable<
Finds the index of an element that satisfies the predicate or returnsT> , provided by the IterableExtension extensionnull
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<
Checks if length of double value is BETWEEN minLength to max.T> , provided by the IterableExtension extension -
isLengthEqualTo(
int other) β bool -
Available on Iterable<
Checks if length of double value is EQUAL to max.T> , provided by the IterableExtension extension -
isLengthEt(
int max) β bool -
Available on Iterable<
Short form forT> , provided by the IterableExtension extensionisLengthEqualTo
-
isLengthGreaterThan(
int max) β bool -
Available on Iterable<
Checks if length of double value is GREATER than max.T> , provided by the IterableExtension extension -
isLengthGreaterThanOrEqualTo(
int max) β bool -
Available on Iterable<
Checks if length of double value is GREATER OR EQUAL to max.T> , provided by the IterableExtension extension -
isLengthGt(
int max) β bool -
Available on Iterable<
Short form forT> , provided by the IterableExtension extensionisLengthGreaterThan
-
isLengthGtEt(
int max) β bool -
Available on Iterable<
Short form forT> , provided by the IterableExtension extensionisLengthGreaterThanOrEqualTo
-
isLengthLessThan(
int max) β bool -
Available on Iterable<
Checks if length of double value is LESS than max.T> , provided by the IterableExtension extension -
isLengthLessThanOrEqualTo(
int max) β bool -
Available on Iterable<
Checks if length of double value is LESS OR EQUAL to max.T> , provided by the IterableExtension extension -
isLengthLt(
int max) β bool -
Available on Iterable<
Short form forT> , provided by the IterableExtension extensionisLengthLessThan
-
isLengthLtEt(
int max) β bool -
Available on Iterable<
Short form forT> , provided by the IterableExtension extensionisLengthLessThanOrEqualTo
-
isSubsetOf(
Set< Object?> other) β bool -
Available on Set<
Utility extension methods for working with sets in Dart.Object?> , provided by the SetUtils extension -
isSupersetOf(
Set< Object?> other) β bool -
Available on Set<
Utility extension methods for working with sets in Dart.Object?> , provided by the SetUtils extension -
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<
Returns the last element that satisfies the predicate orT> , provided by the IterableExtension extensionnull
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<
Checks if no element matches the predicate.T> , provided by the IterableExtension extension -
noneMatch(
ConditionTester< T> test) β bool -
Available on Iterable<
Checks if none of the elements match a condition using noneMatch.T> , provided by the IterableExtension extension -
noSuchMethod(
Invocation invocation) β dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
process(
dynamic action(T item)) β void -
Available on Iterable<
Processes each element of the iterable using the providedT> , provided by the IterableExtension extensionaction
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 whiletest
is satisfied.override -
sortedByPublicFirst(
) β List< T> -
Available on Iterable<
Sorts declarations with public visibility before private ones.T> , provided by the SortByPublic extension -
sortedByPublicFirstThenSyntheticLast(
) β List< T> -
Available on Iterable<
Sorts declarations with public visibility first and synthetic declarations last.T> , provided by the SortByPublic extension -
stream(
) β GenericStream< T> -
Available on Iterable<
Converts the iterable to a stream.T> , provided by the IterableExtension extension -
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<
Maps the iterable to a new iterable using the providedT> , provided by the IterableExtension extensionmapper
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<
Returns an iterable with elements that match a condition, orT> , provided by the IterableExtension extensionnull
if none match. -
whereType<
U> () β Iterable< T> -
Available on Iterable<
Filters elements of a specific typeT> , provided by the IterableExtension extensionT
. -
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