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 ofSortedSet
based on an array. The array must already be sorted in natural order.- Author:
- Julian Hyde
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ArraySortedSet(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Comparator<? super E>
comparator()
boolean
contains(Object o)
E
first()
SortedSet<E>
headSet(E toElement)
Iterator<E>
iterator()
E
last()
ArraySortedSet<E>
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()
SortedSet<E>
subSet(E fromElement, E toElement)
SortedSet<E>
tailSet(E fromElement)
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 Detail
-
ArraySortedSet
public ArraySortedSet(E[] values)
Creates a set backed by an array. The array must be sorted, and is not copied.- Parameters:
values
- Array of values
-
ArraySortedSet
public ArraySortedSet(E[] values, int start, int end)
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 Detail
-
iterator
public Iterator<E> 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
public Comparator<? super E> comparator()
- Specified by:
comparator
in interfaceSortedSet<E extends Comparable<E>>
-
subSet
public SortedSet<E> subSet(E fromElement, E toElement)
- Specified by:
subSet
in interfaceSortedSet<E extends Comparable<E>>
-
headSet
public SortedSet<E> headSet(E toElement)
- Specified by:
headSet
in interfaceSortedSet<E extends Comparable<E>>
-
tailSet
public SortedSet<E> tailSet(E fromElement)
- Specified by:
tailSet
in interfaceSortedSet<E extends Comparable<E>>
-
toArray
public Object[] 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
public ArraySortedSet<E> merge(ArraySortedSet<E> arrayToMerge)
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:
Util.intersect(java.util.SortedSet, java.util.SortedSet)
-
contains
public boolean contains(Object o)
- 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>>
-
-