import java.util.*;
class MyType implements Comparable
{
private int i;
public MyType(int i)
{
this.i=i;
}
public boolean equals(Object o)
{
System.out.println(((MyType)o).i);
return (o instanceof MyType) && (i==((MyType)o).i); //(MyType)o).i和i应该都是private int i;这个i吧,为什么它们会做比较呢? }
public int hashCode()
{
return i;
}
public int compareTo(Object arg0)
{
int value=0;
int i2=((MyType)arg0).i;
if(i2<i)
{
value=-1;
}
else if(i2>i)
{
value=1;
}
else
{
value=0;
}
return value;
}
}
((MyType)o).i 和 i 应该都是在MyType类中定义的int型变量i吧?如果是同一个i,怎么会做==的比较呢?
MyType type2 = new MyType();
boolean flag = type1.equals(type2);((MyType)o).i 指的是type2里的i
i指的是type1里的i
明白?