## com.vividsolutions.jts.geom
Class CoordinateSequenceComparator

    java.lang.Object
      com.vividsolutions.jts.geom.CoordinateSequenceComparator

All Implemented Interfaces:
  java.util.Comparator

public class CoordinateSequenceComparator
extends java.lang.Object
implements java.util.Comparator

Compares two `CoordinateSequence`s. For sequences of the same dimension, the ordering is lexicographic. Otherwise, lower dimensions are sorted before higher. The dimensions compared can be limited; if this is done ordinate dimensions above the limit will not be compared.

If different behaviour is required for comparing size, dimension, or coordinate values, any or all methods can be overridden.

Field Summary
`protected int` `dimensionLimit` The number of dimensions to test

Constructor Summary
`CoordinateSequenceComparator()` Creates a comparator which will test all dimensions.
`CoordinateSequenceComparator(int dimensionLimit)` Creates a comparator which will test only the specified number of dimensions.

Method Summary
`static int` `compare(double a, double b)` Compare two `double`s, allowing for NaN values.
`int` `compare(java.lang.Object o1, java.lang.Object o2)` Compares two `CoordinateSequence`s for relative order.
`protected int` `compareCoordinate(CoordinateSequence s1, CoordinateSequence s2, int i, int dimension)` Compares the same coordinate of two `CoordinateSequence`s along the given number of dimensions.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.util.Comparator
`equals`

Field Detail

### dimensionLimit

    protected int dimensionLimit

  The number of dimensions to test

Constructor Detail

### CoordinateSequenceComparator

    public CoordinateSequenceComparator()

  Creates a comparator which will test all dimensions.

### CoordinateSequenceComparator

    public CoordinateSequenceComparator(int dimensionLimit)

  Creates a comparator which will test only the specified number of dimensions.

Parameters:
  `dimensionLimit` - the number of dimensions to test

Method Detail

### compare

    public static int compare(double a,
                              double b)

  Compare two `double`s, allowing for NaN values. NaN is treated as being less than any valid number.

  Parameters:
    `a` - a `double`
    `b` - a `double`
  Returns:
    -1, 0, or 1 depending on whether a is less than, equal to or greater than b

### compare

    public int compare(java.lang.Object o1,
                       java.lang.Object o2)

  Compares two `CoordinateSequence`s for relative order.

  Specified by:
    `compare` in interface `java.util.Comparator`
  Parameters:
    `o1` - a `CoordinateSequence`
    `o2` - a `CoordinateSequence`
  Returns:
    -1, 0, or 1 depending on whether o1 is less than, equal to, or greater than o2

### compareCoordinate

    protected int compareCoordinate(CoordinateSequence s1,
                                    CoordinateSequence s2,
                                    int i,
                                    int dimension)

  Compares the same coordinate of two `CoordinateSequence`s along the given number of dimensions.

  Parameters:
    `s1` - a `CoordinateSequence`
    `s2` - a `CoordinateSequence`
    `i` - the index of the coordinate to test
    `dimension` - the number of dimensiosn to test
  Returns:
    -1, 0, or 1 depending on whether s1[i] is less than, equal to, or greater than s2[i]