Class Rank<T>
- java.lang.Object
-
- org.apache.jackrabbit.commons.flat.Rank<T>
-
- Type Parameters:
T- Type of values in thisRank.
public class Rank<T> extends Object
This class does efficient ranking of values of type
Twrt. to aComparatorforT. After creating an instance ofRank, thetake(int)method returns the nextksmallest values. That is, each of these values is smaller than every value not yet retrieved. The order of the values returned bytakeis not specified in general. However if the values are in increasing order, the values returned bytakewill also be in increasing order.Note: The values may not contain duplicates or the behavior of
takeis not defined.
-
-
Constructor Summary
Constructors Constructor Description Rank(Collection<T> values, Class<T> componentType, Comparator<? super T> order)Create a new instance ofRankfor a given collection ofvaluesand a givenorder.Rank(Iterator<T> values, Class<T> componentType, int count, Comparator<? super T> order)Create a new instance ofRankfor the firstcountvalues in a a given iterator ofvaluesand a givenorder.Rank(T[] values, Comparator<? super T> order)Create a new instance ofRankfor a given array ofvaluesand a givenorder.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T extends Comparable<T>>
Comparator<T>comparableComparator()Comparator<? super T>getOrder()static <S extends Comparable<S>>
Rank<S>rank(Collection<S> values, Class<S> componentType)Create a new instance ofRankfor a given collection ofvalues.static <S extends Comparable<S>>
Rank<S>rank(Iterator<S> values, Class<S> componentType, int count)Create a new instance ofRankfor the firstcountvalues in a a given iterator ofvalues.static <S extends Comparable<S>>
Rank<S>rank(S[] values)Create a new instance ofRankfor a given array ofvalues.intsize()Returns the number of remaining items in theRank.Iterator<T>take(int n)Returns then-th smallest values remaining in thisRank.
-
-
-
Constructor Detail
-
Rank
public Rank(T[] values, Comparator<? super T> order)
Create a new instance ofRankfor a given array ofvaluesand a givenorder. Thevaluesare manipulated in place, no copying is performed.- Parameters:
values- values for ranking. Duplicates are not allowed.order- Ordering for ranking
-
Rank
public Rank(Collection<T> values, Class<T> componentType, Comparator<? super T> order)
Create a new instance ofRankfor a given collection ofvaluesand a givenorder. Thevaluesare copied into an internal array before they are manipulated.- Parameters:
values- values for ranking. Duplicates are not allowed.componentType- type evidence for the valuesorder- Ordering for ranking
-
Rank
public Rank(Iterator<T> values, Class<T> componentType, int count, Comparator<? super T> order)
Create a new instance ofRankfor the firstcountvalues in a a given iterator ofvaluesand a givenorder. Thevaluesare copied into an internal array before they are manipulated.- Parameters:
values- values for ranking. Duplicates are not allowed.componentType- type evidence for the valuescount- Number of items to include. -1 for all.order- Ordering for ranking
-
-
Method Detail
-
rank
public static <S extends Comparable<S>> Rank<S> rank(S[] values)
Create a new instance ofRankfor a given array ofvalues. The order is determined by the natural ordering of the values (i.e. throughComparable). Thevaluesare manipulated in place, no copying is performed.- Type Parameters:
S- extends Comparable<S>- Parameters:
values- values for ranking. Duplicates are not allowed.- Returns:
- A new instance of
Rank.
-
rank
public static <S extends Comparable<S>> Rank<S> rank(Collection<S> values, Class<S> componentType)
Create a new instance ofRankfor a given collection ofvalues. The order is determined by the natural ordering of the values (i.e. throughComparable). Thevaluesare copied into an internal array before they are manipulated.- Type Parameters:
S- extends Comparable<S>- Parameters:
values- values for ranking. Duplicates are not allowed.componentType- type evidence for the values- Returns:
- A new instance of
Rank.
-
rank
public static <S extends Comparable<S>> Rank<S> rank(Iterator<S> values, Class<S> componentType, int count)
Create a new instance ofRankfor the firstcountvalues in a a given iterator ofvalues. The order is determined by the natural ordering of the values (i.e. throughComparable). Thevaluesare copied into an internal array before they are manipulated.- Type Parameters:
S- extends Comparable<S>- Parameters:
values- values for ranking. Duplicates are not allowed.componentType- type evidence for the valuescount- Number of items to include. -1 for all.- Returns:
- A new instance of
Rank.
-
comparableComparator
public static <T extends Comparable<T>> Comparator<T> comparableComparator()
- Type Parameters:
T- extends Comparable<T>- Returns:
- Comparator whose order is defined by
T.
-
getOrder
public Comparator<? super T> getOrder()
-
take
public Iterator<T> take(int n)
Returns then-th smallest values remaining in thisRank.- Parameters:
n- Number of values to return- Returns:
- An iterator containing the next
nsmallest values. - Throws:
NoSuchElementException- if thisRankhas not enough remaining elements or whennis negative.
-
size
public int size()
Returns the number of remaining items in theRank.- Returns:
- number of remaining items.
-
-