想知道这两个的具体意思
import java.util.Arrays;
class Animail
{
	public static void main(String[] args)
	{
			Student [] ss=new Student[]{new Student(18,"lisi"),
		                         new Student(15,"lisan"),
		                         new Student(17,"lihai")    };
		                         Arrays.sort(ss);
		                         for(int i=0;i<ss.length;i++){
		                         System.out.println("num= "+ss[i].num+" name="+ss[i].name);
		                       }
	}
}
class Student implements Comparable
{
	int num;
	String name;
	Student(int num,String name)
	{
		this.num=num;
		this.name=name;
	}
	public int compareTo(Object o){
		Student s=(Student)o;
		return num<s.num ? -1:(num>s.num ? 1:0);
	}
		
}
return num<s.num ? -1:(num>s.num ? 1:0);这一句里我想知道它是怎么让15,17,18,按顺序排列的,还有num和s.num分别具体的内容的解释,谢谢,反正又明白又不明白的,因为我知道num小于s.num的是正确话,就返回冒号和问号之间的值。如果错误就返回冒号后面的值。这个num是指15,17,18,吗?s.num呢?
              
                  object
              
------解决方案--------------------这段代码实现的是对象排序的功能
是通过Arrays类的sort方法来进行的
不过对象要进行排序要实现Comparable接口
并且重写public int compareTo(Object o){}方法
因为对象大小的比较是由你的需求而定的
------解决方案--------------------首先说:
return num<s.num ? -1:(num>s.num ? 1:0);
这是三目运算符,意义就相当于:
if(num<s.num){
    return -1;
}else{
     if(if num > s.num){
         return 1;
     }else{
         return 0;
     }
}
然后再说排序的问题,实际上你定义的Student类本身并没有做排序计算,排序的算法本身是在Array的sort方法里完成的。Student类之所以要实现一个Compareable接口,定义compareTo方法,实际上是为了告诉Array类里面具体的sort算法,应该如何判断大和小,然后排序的工作,由Array里的sort算法具体完成。