想问关于comparable的问题

小弟学生党一枚。刚学JAva不久,碰见好多问题,还望指教

import java.util.*;
class userName implements Comparable
{
public String sName;
public userName(String sName)
{
this.sName=sName;
}
public int compareTo(Object o)//重写compareTo方法
{
userName tempuser=(userName)o;
String temp=tempuser.sName;
return this.sName.compareTo(temp); //按字符串sName的顺序排列Student
}
public String toString()
{
return this.sName;
}
}
public class UserNameSort {
public static void main(String args[])
{
System.out.println("排序后的用户名顺序为:");
TreeSet ts=new TreeSet();//插入Student对象时,会自动调用compareTo方法
ts.add(new userName("Lester"));
ts.add(new userName("Jimmy"));
ts.add(new userName("Bob"));
System.out.println(ts);
}
}

关于这段代码
public int compareTo(Object o)//重写compareTo方法
{
userName tempuser=(userName)o;
String temp=tempuser.sName;
return this.sName.compareTo(temp); //按字符串sName的顺序排列Student
}

能给我解释一下嘛,真心搞不明白是怎么回事

其实就是比较this.sName和temp这两个字符串哪个比较大。
字符串compareTo方法这样比较:它从第一位开始比较,如果遇到不同的字符,则返回这两个字符的ascii值差值
例如 "a".compareTo("b")返回-1 "a".compareTo("c")返回-2
userName 类重载了这个compareTo()的目的就是:当比较两个userName对象谁比较大时,就直接比较这两个对象的sName成员谁比较大。
好吧 其实我也是学生党~~