Package mondrian.util
Class ArraySortedSet<E extends Comparable<E>>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
mondrian.util.ArraySortedSet<E>
- Type Parameters:
E
-
- All Implemented Interfaces:
Serializable
,Iterable<E>
,Collection<E>
,Set<E>
,SortedSet<E>
public class ArraySortedSet<E extends Comparable<E>>
extends AbstractSet<E>
implements SortedSet<E>, Serializable
Implementation of
SortedSet
based on an array. The array
must already be sorted in natural order.- Author:
- Julian Hyde
- See Also:
-
Constructor Summary
ConstructorDescriptionArraySortedSet
(E[] values) Creates a set backed by an array.ArraySortedSet
(E[] values, int start, int end) Creates a set backed by a region of an array. -
Method Summary
Modifier and TypeMethodDescriptionComparator<? super E>
boolean
first()
iterator()
last()
merge
(ArraySortedSet<E> arrayToMerge) Performs a merge between twoArraySortedSet
instances in O(n) time, returning a third instance that doesn't include duplicates.int
size()
Object[]
toArray()
<T> T[]
toArray
(T[] a) Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
Methods inherited from class java.util.AbstractCollection
add, addAll, clear, containsAll, isEmpty, remove, retainAll, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.Set
add, addAll, clear, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll
Methods inherited from interface java.util.SortedSet
spliterator
-
Constructor Details
-
ArraySortedSet
Creates a set backed by an array. The array must be sorted, and is not copied.- Parameters:
values
- Array of values
-
ArraySortedSet
Creates a set backed by a region of an array. The array must be sorted, and is not copied.- Parameters:
values
- Array of valuesstart
- Index of start of regionend
- Index of first element after end of region
-
-
Method Details
-
iterator
- Specified by:
iterator
in interfaceCollection<E extends Comparable<E>>
- Specified by:
iterator
in interfaceIterable<E extends Comparable<E>>
- Specified by:
iterator
in interfaceSet<E extends Comparable<E>>
- Specified by:
iterator
in classAbstractCollection<E extends Comparable<E>>
-
size
public int size()- Specified by:
size
in interfaceCollection<E extends Comparable<E>>
- Specified by:
size
in interfaceSet<E extends Comparable<E>>
- Specified by:
size
in classAbstractCollection<E extends Comparable<E>>
-
comparator
- Specified by:
comparator
in interfaceSortedSet<E extends Comparable<E>>
-
subSet
- Specified by:
subSet
in interfaceSortedSet<E extends Comparable<E>>
-
headSet
- Specified by:
headSet
in interfaceSortedSet<E extends Comparable<E>>
-
tailSet
- Specified by:
tailSet
in interfaceSortedSet<E extends Comparable<E>>
-
first
- Specified by:
first
in interfaceSortedSet<E extends Comparable<E>>
-
last
- Specified by:
last
in interfaceSortedSet<E extends Comparable<E>>
-
toArray
- Specified by:
toArray
in interfaceCollection<E extends Comparable<E>>
- Specified by:
toArray
in interfaceSet<E extends Comparable<E>>
- Overrides:
toArray
in classAbstractCollection<E extends Comparable<E>>
-
toArray
public <T> T[] toArray(T[] a) - Specified by:
toArray
in interfaceCollection<E extends Comparable<E>>
- Specified by:
toArray
in interfaceSet<E extends Comparable<E>>
- Overrides:
toArray
in classAbstractCollection<E extends Comparable<E>>
-
merge
Performs a merge between twoArraySortedSet
instances in O(n) time, returning a third instance that doesn't include duplicates.For example, ArraySortedSet("a", "b", "c").merge(ArraySortedSet("a", "c", "e")) returns ArraySortedSet("a", "b", "c", "e")}.
- Parameters:
arrayToMerge
- Other set to combine with this- Returns:
- Set containing union of the elements of inputs
- See Also:
-
contains
- Specified by:
contains
in interfaceCollection<E extends Comparable<E>>
- Specified by:
contains
in interfaceSet<E extends Comparable<E>>
- Overrides:
contains
in classAbstractCollection<E extends Comparable<E>>
-