public abstract class CmpUtil extends Object
Modifier and Type | Class and Description |
---|---|
static class |
CmpUtil.NullOrdering
Enum for controlling which rank is assigned to a
null
element when using a safe comparator
(safeComparator(Comparator, NullOrdering) ). |
Modifier and Type | Method and Description |
---|---|
static <T extends List<U>,U extends Comparable<U>> |
canonicalComparator()
Retrieves a canonical comparator for the given type, which has to be
a
List of Comparable types. |
static <T extends List<? extends U>,U> |
canonicalComparator(Comparator<? super U> elemComp)
Retrieves a canonical comparator for the given list type.
|
static int |
canonicalCompare(int[] a1,
int[] a2) |
static <U extends Comparable<? super U>> |
canonicalCompare(List<? extends U> o1,
List<? extends U> o2)
Compares two
List s of Comparable elements with respect to canonical ordering. |
static <U> int |
canonicalCompare(List<? extends U> o1,
List<? extends U> o2,
Comparator<? super U> elemComparator)
Compares two
List s with respect to canonical ordering. |
static <U extends Comparable<U>,T extends Iterable<U>> |
lexComparator()
Retrieves a lexicographical comparator for the given type, which has
to be an
Iterable of Comparable types. |
static <T extends Iterable<U>,U> |
lexComparator(Comparator<U> elemComp)
Retrieves a lexicographical comparator for the given type.
|
static int |
lexCompare(int[] a1,
int[] a2) |
static <U extends Comparable<? super U>> |
lexCompare(Iterable<? extends U> o1,
Iterable<? extends U> o2)
Lexicographically compares two
Iterable s, whose element types
are comparable. |
static <U> int |
lexCompare(Iterable<? extends U> o1,
Iterable<? extends U> o2,
Comparator<U> elemComparator)
Lexicographically compares two
Iterable s. |
static <T extends Comparable<T>> |
naturalOrderingComparator()
Retrieves a
Comparator that compares elements according to their
natural ordering (i.e., they have to implement the Comparable
interface. |
static <T> Comparator<T> |
safeComparator(Comparator<T> baseComp,
CmpUtil.NullOrdering nullOrd)
Retrieves a safe comparator, which can handle
null
element values. |
public static <U> int lexCompare(Iterable<? extends U> o1, Iterable<? extends U> o2, Comparator<U> elemComparator)
Iterable
s. Comparison of the
elements is done using the specified comparator.o1
- the first iterable.o2
- the second iterable.elemComparator
- the comparator.< 0
iff o1 is lexicographically smaller,
0
if o1 equals o2 and > 0
otherwise.public static int lexCompare(int[] a1, int[] a2)
public static int canonicalCompare(int[] a1, int[] a2)
public static <U extends Comparable<? super U>> int lexCompare(Iterable<? extends U> o1, Iterable<? extends U> o2)
Iterable
s, whose element types
are comparable.o1
- o2
- public static <U> int canonicalCompare(List<? extends U> o1, List<? extends U> o2, Comparator<? super U> elemComparator)
List
s with respect to canonical ordering.
In canonical ordering, a sequence o1 is less than a sequence o2 if o1 is shorter than o2, or if they have the same length and o1 is lexicographically smaller than o2.
o1
- the first listo2
- the second listelemComparator
- the comparator for comparing the single elementspublic static <U extends Comparable<? super U>> int canonicalCompare(List<? extends U> o1, List<? extends U> o2)
List
s of Comparable
elements with respect to canonical ordering.
In canonical ordering, a sequence o1 is less than a sequence o2 if o1 is shorter than o2, or if they have the same length and o1 is lexicographically smaller than o2.
o1
- the first listo2
- the second listpublic static <T extends Iterable<U>,U> Comparator<T> lexComparator(Comparator<U> elemComp)
elemComp
- the comparator to use for comparing the elements.T
based on lexicographical ordering.public static <U extends Comparable<U>,T extends Iterable<U>> Comparator<T> lexComparator()
Iterable
of Comparable
types.public static <T extends List<? extends U>,U> Comparator<T> canonicalComparator(Comparator<? super U> elemComp)
elemComp
- the comparator to use for comparing the elements.T
based on
canonical ordering.public static <T extends List<U>,U extends Comparable<U>> Comparator<T> canonicalComparator()
List
of Comparable
types.canonicalCompare(List, List)
public static <T> Comparator<T> safeComparator(Comparator<T> baseComp, CmpUtil.NullOrdering nullOrd)
null
element values.
Whether null
values are smaller or bigger than regular
values is controlled by the CmpUtil.NullOrdering
parameter.T
- original element class.baseComp
- the basic comparator.nullOrd
- the ordering policy for null
values.public static <T extends Comparable<T>> Comparator<T> naturalOrderingComparator()
Comparator
that compares elements according to their
natural ordering (i.e., they have to implement the Comparable
interface.
If this comparator is used on elements that don't implement this
interface, this may result in a ClassCastException
.T
- element class.Copyright © 2015. All rights reserved.