public class ReferenceArraySet<K> extends AbstractReferenceSet<K> implements Serializable, Cloneable
The main purpose of this implementation is that of wrapping cleanly the brute-force approach to the storage of a very small number of items: just put them into an array and scan linearly to find an item.
Constructor and Description |
---|
ReferenceArraySet()
Creates a new empty array set.
|
ReferenceArraySet(Collection<? extends K> c)
Creates a new array set copying the contents of a given set.
|
ReferenceArraySet(int capacity)
Creates a new empty array set of given initial capacity.
|
ReferenceArraySet(Object[] a)
Creates a new array set using the given backing array.
|
ReferenceArraySet(Object[] a,
int size)
Creates a new array set using the given backing array and the given number of elements of the array.
|
ReferenceArraySet(ReferenceCollection<K> c)
Creates a new array set copying the contents of a given collection.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(K k) |
void |
clear() |
ReferenceArraySet<K> |
clone()
Returns a deep copy of this set.
|
boolean |
contains(Object k) |
boolean |
isEmpty() |
ObjectIterator<K> |
iterator()
Returns a type-specific iterator on the elements of this collection.
|
boolean |
remove(Object k)
Removes an element from this set.
|
int |
size() |
equals, hashCode
addAll, containsAll, objectIterator, removeAll, retainAll, toArray, toArray, toString
objectIterator, toArray
public ReferenceArraySet(Object[] a)
It is responsibility of the caller that the elements of a
are distinct.
a
- the backing array.public ReferenceArraySet()
public ReferenceArraySet(int capacity)
capacity
- the initial capacity.public ReferenceArraySet(ReferenceCollection<K> c)
c
- a collection.public ReferenceArraySet(Collection<? extends K> c)
c
- a collection.public ReferenceArraySet(Object[] a, int size)
It is responsibility of the caller that the first size
elements of a
are distinct.
a
- the backing array.size
- the number of valid elements in a
.public ObjectIterator<K> iterator()
ReferenceCollection
Note that this specification strengthens the one given in
Iterable.iterator()
, which was already
strengthened in the corresponding type-specific class,
but was weakened by the fact that this interface extends Collection
.
iterator
in interface ObjectIterable<K>
iterator
in interface ReferenceCollection<K>
iterator
in interface ReferenceSet<K>
iterator
in interface Iterable<K>
iterator
in interface Collection<K>
iterator
in interface Set<K>
iterator
in class AbstractReferenceSet<K>
public boolean contains(Object k)
contains
in interface Collection<K>
contains
in interface Set<K>
contains
in class AbstractCollection<K>
public int size()
size
in interface Collection<K>
size
in interface Set<K>
size
in class AbstractCollection<K>
public boolean remove(Object k)
ReferenceSet
Note that the corresponding method of the type-specific collection is rem()
.
This unfortunate situation is caused by the clash
with the similarly named index-based method in the List
interface.
remove
in interface ReferenceSet<K>
remove
in interface Collection<K>
remove
in interface Set<K>
remove
in class AbstractReferenceSet<K>
Collection.remove(Object)
public boolean add(K k)
add
in interface Collection<K>
add
in interface Set<K>
add
in class AbstractReferenceCollection<K>
public void clear()
clear
in interface Collection<K>
clear
in interface Set<K>
clear
in class AbstractCollection<K>
public boolean isEmpty()
isEmpty
in interface Collection<K>
isEmpty
in interface Set<K>
isEmpty
in class AbstractReferenceCollection<K>
public ReferenceArraySet<K> clone()
This method performs a deep copy of this hash set; the data stored in the set, however, is not cloned. Note that this makes a difference only for object keys.