Package fj.data
Class HashSet<A>
- java.lang.Object
-
- fj.data.HashSet<A>
-
- All Implemented Interfaces:
java.lang.Iterable<A>
public final class HashSet<A> extends java.lang.Object implements java.lang.Iterable<A>
A mutable hash set that guarantees uniqueness of its elements providing O(1) lookup.- Version:
- %build.number%
- See Also:
HashMap
-
-
Constructor Summary
Constructors Constructor Description HashSet(Equal<A> e, Hash<A> h)
Construct a hash set with the given equality and hashing strategy.HashSet(Equal<A> e, Hash<A> h, int initialCapacity)
Construct a hash set with the given equality and hashing strategy.HashSet(Equal<A> e, Hash<A> h, int initialCapacity, float loadFactor)
Construct a hash set with the given equality and hashing strategy.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <A> HashSet<A>
arrayHashSet(A... as)
Create a HashSet from the array.static <A> HashSet<A>
arrayHashSet(Equal<A> e, Hash<A> h, A... as)
Create a HashSet from the array.void
clear()
Clear all elements from this hash set.boolean
contains(A a)
Determines if this hash set contains the given element.boolean
delete(A a)
Deletes the given element from this hash set.static <A> HashSet<A>
empty()
Creates an empty HashSetstatic <A> HashSet<A>
empty(Equal<A> e, Hash<A> h)
Creates a new HashSet using the given Equal and Hashboolean
eq(A a1, A a2)
Compare two values for equality using the underlying equality strategy.static <A> HashSet<A>
fromSet(java.util.Set<A> s)
int
hash(A a)
Compute the hash of the given value using the underlying hashing strategy.static <A> HashSet<A>
hashSet(A... as)
Create a HashSet from the array.static <A> HashSet<A>
hashSet(Equal<A> e, Hash<A> h, A... as)
Create a HashSet from the array.boolean
isEmpty()
Determines if this hash set contains any elements.static <A> HashSet<A>
iterableHashSet(Equal<A> e, Hash<A> h, java.lang.Iterable<A> it)
Create a HashSet from the Iterable.static <A> HashSet<A>
iterableHashSet(java.lang.Iterable<A> it)
Create a HashSet from the Iterable.java.util.Iterator<A>
iterator()
Returns an iterator for this hash set.static <A> HashSet<A>
iteratorHashSet(Equal<A> e, Hash<A> h, java.util.Iterator<A> it)
Create a HashSet from the Iterator.static <A> HashSet<A>
iteratorHashSet(java.util.Iterator<A> it)
Create a HashSet from the Iterator.void
set(A a)
Insert the given element into this hash set.int
size()
Returns the number of entries in this hash set.java.util.Collection<A>
toCollection()
Projects an immutable collection of this hash set.java.util.List<A>
toJavaList()
java.util.Set<A>
toJavaSet()
List<A>
toList()
Returns a list projection of this hash set.
-
-
-
Constructor Detail
-
HashSet
public HashSet(Equal<A> e, Hash<A> h)
Construct a hash set with the given equality and hashing strategy.- Parameters:
e
- The equality strategy.h
- The hashing strategy.
-
HashSet
public HashSet(Equal<A> e, Hash<A> h, int initialCapacity)
Construct a hash set with the given equality and hashing strategy.- Parameters:
e
- The equality strategy.h
- The hashing strategy.initialCapacity
- The initial capacity.
-
-
Method Detail
-
iterator
public java.util.Iterator<A> iterator()
Returns an iterator for this hash set. This method exists to permit the use in afor
-each loop.- Specified by:
iterator
in interfacejava.lang.Iterable<A>
- Returns:
- A iterator for this hash set.
-
eq
public boolean eq(A a1, A a2)
Compare two values for equality using the underlying equality strategy.- Parameters:
a1
- One value to compare.a2
- The other value to compare.- Returns:
true
if the two values are equal,false
otherwise.
-
hash
public int hash(A a)
Compute the hash of the given value using the underlying hashing strategy.- Parameters:
a
- The value to computer the hash of.- Returns:
- The hash of the given value.
-
empty
public static <A> HashSet<A> empty(Equal<A> e, Hash<A> h)
Creates a new HashSet using the given Equal and Hash
-
empty
public static <A> HashSet<A> empty()
Creates an empty HashSet
-
iterableHashSet
public static <A> HashSet<A> iterableHashSet(java.lang.Iterable<A> it)
Create a HashSet from the Iterable.
-
iterableHashSet
public static <A> HashSet<A> iterableHashSet(Equal<A> e, Hash<A> h, java.lang.Iterable<A> it)
Create a HashSet from the Iterable.
-
iteratorHashSet
public static <A> HashSet<A> iteratorHashSet(java.util.Iterator<A> it)
Create a HashSet from the Iterator.
-
iteratorHashSet
public static <A> HashSet<A> iteratorHashSet(Equal<A> e, Hash<A> h, java.util.Iterator<A> it)
Create a HashSet from the Iterator.
-
arrayHashSet
@SafeVarargs public static <A> HashSet<A> arrayHashSet(A... as)
Create a HashSet from the array.
-
arrayHashSet
@SafeVarargs public static <A> HashSet<A> arrayHashSet(Equal<A> e, Hash<A> h, A... as)
Create a HashSet from the array.
-
hashSet
@SafeVarargs public static <A> HashSet<A> hashSet(A... as)
Create a HashSet from the array.
-
hashSet
@SafeVarargs public static <A> HashSet<A> hashSet(Equal<A> e, Hash<A> h, A... as)
Create a HashSet from the array.
-
contains
public boolean contains(A a)
Determines if this hash set contains the given element.- Parameters:
a
- The element to look for in this hash set.- Returns:
true
if this hash set contains the given element,false
otherwise.
-
set
public void set(A a)
Insert the given element into this hash set.- Parameters:
a
- The element to insert.
-
clear
public void clear()
Clear all elements from this hash set.
-
isEmpty
public boolean isEmpty()
Determines if this hash set contains any elements.- Returns:
true
if this hash set contains no elements,false
otherwise.
-
size
public int size()
Returns the number of entries in this hash set.- Returns:
- The number of entries in this hash set.
-
delete
public boolean delete(A a)
Deletes the given element from this hash set.- Parameters:
a
- The element to delete from this hash set.- Returns:
true
if this hash set contained the given element prior to deletion,false
otherwise.
-
toList
public List<A> toList()
Returns a list projection of this hash set.- Returns:
- A list projection of this hash set.
-
toJavaList
public java.util.List<A> toJavaList()
-
toJavaSet
public java.util.Set<A> toJavaSet()
-
fromSet
public static <A> HashSet<A> fromSet(java.util.Set<A> s)
-
toCollection
public java.util.Collection<A> toCollection()
Projects an immutable collection of this hash set.- Returns:
- An immutable collection of this hash set.
-
-