Package weka.core

# Class InstanceComparator

java.lang.Object
weka.core.InstanceComparator

All Implemented Interfaces:
  `Serializable`, `Comparator`, `RevisionHandler`

public class InstanceComparator extends Object implements Comparator, Serializable, RevisionHandler
A comparator for the Instance class. it can be used with or without the class label. Missing values are sorted at the beginning. Can be used as comparator in the sorting and binary search algorithms of `Arrays` and `Collections`. Relational values are compared instance by instance with a nested InstanceComparator.

Version:
  $Revision: 7988 $
Author:
  FracPete (fracpete at cs dot waikato dot ac dot nz)
See Also:
  - `Instance`
  - `Arrays`
  - `Collections`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`InstanceComparator()`
initializes the comparator and includes the class in the comparison
`InstanceComparator(boolean includeClass)`
initializes the comparator

## Method Summary

Modifier and Type
Method
Description
`int`
`compare(Object o1, Object o2)`
compares the two instances, returns -1 if o1 is smaller than o2, 0 if equal and +1 if greater.
`boolean`
`getIncludeClass()`
returns TRUE if the class is included in the comparison
`String`
`getRevision()`
Returns the revision string.
`static void`
`main(String[] args)`
for testing only.
`void`
`setIncludeClass(boolean includeClass)`
sets whether the class should be included (= TRUE) in the comparison

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.Comparator

`equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

## Constructor Details

### InstanceComparator

public InstanceComparator()
initializes the comparator and includes the class in the comparison

### InstanceComparator

public InstanceComparator(boolean includeClass)
initializes the comparator

## Method Details

### setIncludeClass

public void setIncludeClass(boolean includeClass)
sets whether the class should be included (= TRUE) in the comparison

Parameters:
  `includeClass` - whether to include the class in the comparison

### getIncludeClass

public boolean getIncludeClass()
returns TRUE if the class is included in the comparison

### compare

public int compare(Object o1, Object o2)
compares the two instances, returns -1 if o1 is smaller than o2, 0 if equal and +1 if greater. The method assumes that both instance objects have the same attributes, they don't have to belong to the same dataset.

Specified by:
  `compare` in interface `Comparator`
Parameters:
  `o1` - the first instance to compare
  `o2` - the second instance to compare
Returns:
  returns -1 if o1 is smaller than o2, 0 if equal and +1 if greater

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Returns:
  the revision

### main

public static void main(String[] args) throws Exception
for testing only. takes an ARFF-filename as first argument to perform some tests.

Throws:
  `Exception`