您的位置:首页 > 其它

对接口 Comparable<T>中1、0、-1的理解

2016-05-16 08:16 411 查看
如下所示的源码:
packagetwoJeHe;
publicclassEmployeeimplementsComparable<Employee>{
	privateintid;
	privateStringname;
	privateintage;
	publicEmployee(intid,Stringname,intage){
		this.id=id;
		this.name=name;
		this.age=age;
}
	publicintcompareTo(Employeeo){//为了实现Test类中的sort方法
		if(id>o.id){
			return1;//大于
}elseif(id<o.id){
			return-1;//小于
}
		return0;//等于
}
	publicStringtoString(){//重写toString方法
		StringBuildersb=newStringBuilder();
		sb.append("员工的编号"+id+",");
		sb.append("员工的姓名"+name+",");
		sb.append("员工的年龄"+age);
		returnsb.toString();
}
}
API中的解释如下:intcompareTo(To)
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。参数:
o
-要比较的对象。返回:负整数、零或正整数,根据此对象是小于、等于还是大于指定对象。抛出:
ClassCastException
-
如果指定对象的类型不允许它与此对象进行比较。我觉得实现接口中定义的compareTo()方法,更重要的一点是为了执行sort()方法进行自动排序.如下是Test测试源码:
packagetwoJeHe;
importjava.awt.List;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Collections;
publicclassTest{
publicstaticvoidmain(String[]args){
	//List<Employee>list=newArrayList<Employee>();
	ArrayList<Employee>list=newArrayList<Employee>();
	list.add(newEmployee(3,"Lester",21));
	list.add(newEmployee(2,"Jimmy",22));
	list.add(newEmployee(3,"Bobby",23));
	System.out.println("排序前:");
	for(Employeeemployee:list){
System.out.println(employee);
}
	System.out.println("排序后:");
Collections.sort(list);//自动排序
	for(Employeeemployee:list){
System.out.println(employee);
}
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: