java教程笔记13--比较器(comparable、comparator)

java教程笔记13--比较器(comparable、comparator)

ID:34723825

大小:170.68 KB

页数:8页

时间:2019-03-10

java教程笔记13--比较器(comparable、comparator)_第1页
java教程笔记13--比较器(comparable、comparator)_第2页
java教程笔记13--比较器(comparable、comparator)_第3页
java教程笔记13--比较器(comparable、comparator)_第4页
java教程笔记13--比较器(comparable、comparator)_第5页
资源描述:

《java教程笔记13--比较器(comparable、comparator)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、java学习笔记13--比较器(Comparable、Comparator)Comparable接口的作用之前Arrays类中存在sort()方法,此方法可以直接对对象数组进行排序。 Comparable接口可以直接使用java.util.Arrays类进行数组的排序操作,但对象所在的类必须实现Comparable接口,用于指定排序接口。Comparable接口的定义如下:public interface Comparable{       public intcompareTo(T o);}此方法返回一个int类型的数据,但是此int的值只能是一下三种:1:表

2、示大于-1:表示小于0:表示相等 要求:定义一个学生类,里面有姓名,年龄,成绩三个属性,要求按成绩由高到低排序,如果成绩相等,则按照年龄由低到高排序。packagecom.itmyhome;importjava.util.Arrays;classStudentimplementsComparable{privateStringname;privateintage;privatefloatscore;publicStudent(Stringname,intage,floatscore){this.name=name;this.age=age;this.

3、score=score;}@OverridepublicintcompareTo(Studentstu){//覆写compareTo方法实现排序规则的应用if(this.score>stu.score){return-1;}elseif(this.scorestu.age){return1;}elseif(this.age

4、eturn"姓名:"+this.name+",年龄:"+this.age+",成绩:"+this.score;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicfloatgetScore(){returnscore;}publicvoidsetScore(floatscore){this.score=score;

5、}}publicclassT{publicstaticvoidmain(String[]args)throwsException{Studentstu[]={newStudent("张三",22,80f),newStudent("李四",23,83f),newStudent("王五",21,80f)};Arrays.sort(stu);//进行排序操作for(inti=0;i

6、本原理:使用第一个元素作为根节点,之后如果后面的内容比根节点小,则放在左子树,如果内容比根节点的内容要大,则放在右子树。packagecom.itmyhome;classBinaryTree{classNode{//声明一个节点类privateComparabledata;//保存具体的内容privateNodeleft;//保存左子树privateNoderight;//保存右子树publicNode(Comparabledata){this.data=data;}publicvoidaddNode(NodenewNode){//确定是放在左子树还是右子树if(ne

7、wNode.data.compareTo(this.data)<0){//内容小,放在左子树if(this.left==null){this.left=newNode;//直接将新的节点设置成左子树}else{this.left.addNode(newNode);//继续向下判断}}if(newNode.data.compareTo(this.data)>=0){//放在右子树if(this.right==null){this.right=newNode;//没有右子树则将此节点设置成右子树}else{this.right.addNode(newNo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。