import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.Set;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.WritableComparable;
/*
* Haoop提供的Writable类型不能满足需求,编写自己的Writable
* 类需要实现WritableComparable接口
*/
public class TextPair implements WritableComparable<TextPair> {
private Text first;
private Text second;
public TextPair() {
set(new Text(),new Text());
}
public TextPair(String first,String second){
set(new Text(first),new Text(second));
}
public TextPair(Text first,Text second){
set(first,second);
}
private void set(Text first, Text second) {
this.first=first;
this.second=second;
}
@Override
public void readFields(DataInput in) throws IOException {
first.readFields(in);
second.readFields(in);
}
@Override
public void write(DataOutput out) throws IOException {
first.write(out);
second.write(out);
}
@Override
public int compareTo(TextPair tp) {
int cmp=first.compareTo(tp.first);
if(cmp!=0){
return cmp;
}
return second.compareTo(tp.second);
}
@Override
public int hashCode() {
return first.hashCode()*163+second.hashCode();
}
@Override
public boolean equals(Object obj) {
if(obj instanceof TextPair){
TextPair tp=(TextPair)obj;
return first.equals(tp.first)&&second.equals(tp.second);
}
return false;
}
@Override
public String toString() {
return first+"\t"+second;
}
}
编写自己的Writeable类
最新推荐文章于 2023-02-21 01:01:23 发布