java教程笔记13比较器.docx
《java教程笔记13比较器.docx》由会员分享,可在线阅读,更多相关《java教程笔记13比较器.docx(8页珍藏版)》请在三一办公上搜索。
1、java教程笔记13比较器java学习笔记13-比较器(Comparable、Comparator) Comparable接口的作用 之前Arrays类中存在sort方法,此方法可以直接对对象数组进行排序。 Comparable接口 可以直接使用java.util.Arrays类进行数组的排序操作,但对象所在的类必须实现Comparable接口,用于指定排序接口。 Comparable接口的定义如下: public interface Comparable public int compareTo(T o); 此方法返回一个int类型的数据,但是此int的值只能是一下三种: 1:表示大于 -1
2、:表示小于 0:表示相等 要求:定义一个学生类,里面有姓名,年龄,成绩三个属性,要求按成绩由高到低排序,如果成绩相等,则按照年龄由低到高排序。 package com.itmyhome; import java.util.Arrays; class Student implements Comparable private String name; private int age; private float score; public Student(String name,int age,float score) Override public int compareTo(Student
3、stu) /覆写compareTo方法实现排序规则的应用 this.name = name; this.age = age; this.score = score; if(this.scorestu.score) return -1; else if(this.scorestu.age) return 1; else if(this.agestu.age) return -1; else return 0; /334*157*810 在这群里获得更多java知识 public String toString public String getName public void setName(S
4、tring name) public int getAge public void setAge(int age) public float getScore public void setScore(float score) return score; this.age = age; return age; this.name = name; return name; return 姓名:+this.name+, 年龄:+this.age+, 成绩:+this.score; this.score = score; public class T 分析比较器的排序原理 实际上比较器的操作,就是经
5、常听到的二叉树的排序算法。 排序的基本原理:使用第一个元素作为根节点,之后如果后面的内容比根节点小,则放在左子树,如果内容比根节点的内容要大,则放在右子树。 package com.itmyhome; class BinaryTree public Node(Comparable data) this.data = data; class Node / 声明一个节点类 private Comparable data; / 保存具体的内容 private Node left; / 保存左子树 private Node right; / 保存右子树 public static void main(
6、String args) throws Exception Student stu = new Student(张三,22,80f) Arrays.sort(stu); /进行排序操作 for (int i = 0; i stu.length; i+) Student s = stui; System.out.println(s); ,new Student(李四,23,83f) ,new Student(王五,21,80f); public void addNode(Node newNode) / 确定是放在左子树还是右子树 if (newNpareTo(this.data) = 0) /
7、放在右子树 if (this.right = null) this.right = newNode; / 没有右子树则将此节点设置成右子树 if (this.left = null) this.left = newNode; / 直接将新的节点设置成左子树 else this.left.addNode(newNode); / 继续向下判断 else this.right.addNode(newNode); / 继续向下判断 ; public void printNode / 输出的时候采用中序遍历 if (this.left != null) System.out.print(this.dat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 教程 笔记 13 比较

链接地址:https://www.31ppt.com/p-3159657.html