Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.hadoop.io
Interface WritableComparable<T>

All Superinterfaces:
  Comparable<T>, Writable

All Known Implementing Classes:
  BooleanWritable, BytesWritable, ByteWritable, DoubleWritable, FloatWritable, ID, ID, IntWritable, JobID, JobID, LongWritable, MD5Hash, NullWritable, Record, RecordTypeInfo, ShortWritable, TaskAttemptID, TaskAttemptID, TaskID, TaskID, Text, VIntWritable, VLongWritable

    @InterfaceAudience.Public
    @InterfaceStability.Stable
    public interface WritableComparable<T>

extends Writable, Comparable<T>

A `Writable` which is also `Comparable`.

`WritableComparable`s can be compared to each other, typically via `Comparator`s. Any type which is to be used as a `key` in the Hadoop Map-Reduce framework should implement this interface.

Note that `hashCode()` is frequently used in Hadoop to partition keys. It's important that your implementation of hashCode() returns the same result across different instances of the JVM. Note also that the default `hashCode()` implementation in `Object` does not satisfy this property.

Example:

>          public class MyWritableComparable implements WritableComparable {
>            // Some data
>            private int counter;
>            private long timestamp;

>            public void write(DataOutput out) throws IOException {
>              out.writeInt(counter);
>              out.writeLong(timestamp);
>            }

>            public void readFields(DataInput in) throws IOException {
>              counter = in.readInt();
>              timestamp = in.readLong();
>            }

>            public int compareTo(MyWritableComparable o) {
>              int thisValue = this.value;
>              int thatValue = o.value;
>              return (thisValue < thatValue ? -1 : (thisValue==thatValue ? 0 : 1));
>            }

>            public int hashCode() {
>              final int prime = 31;
>              int result = 1;
>              result = prime * result + counter;
>              result = prime * result + (int) (timestamp ^ (timestamp >>> 32));
>              return result
>            }
>          }

Method Summary

Methods inherited from interface org.apache.hadoop.io.Writable
`readFields, write`

Methods inherited from interface java.lang.Comparable
`compareTo`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2012 Apache Software Foundation. All Rights Reserved.