当前位置: 首页 > news >正文

wdcp网站备份问题pacdora 设计网

wdcp网站备份问题,pacdora 设计网,简单免费自建网站,有做网站维护的对集合元素排序比较 1. 使用 Comparable 接口实现默认排序 Comparable 是 Java 中的一个接口#xff0c;用于定义对象之间的排序规则。 实现了 Comparable 接口的类可以比较其对象的大小#xff08;包装类都实现了该接口#xff09;#xff0c;从而可以在集合类#xf…对集合元素排序比较 1. 使用 Comparable 接口实现默认排序 Comparable 是 Java 中的一个接口用于定义对象之间的排序规则。 实现了 Comparable 接口的类可以比较其对象的大小包装类都实现了该接口从而可以在集合类如 TreeSet、TreeMap 等中进行排序和查找操作。这种排序被称为类的自然排序类的 compareTo() 方法被称为它的自然比较方法。 public interface ComparableT {int compareTo(T o); }compareTo() 方法的返回值有以下三种情况 返回负整数表示当前对象小于传入对象。返回零表示当前对象等于传入对象。返回正整数表示当前对象大于传入对象。T 是泛型的一种表现方式表示一种类型。 示例1 学生类 Student 实现了 Comparable 接口重写了 compareTo() 方法通过比较总成绩实现对象之间的大小比较。 public class Student implements Comparable{private String name;private int math;private int chinese;public Student(String name, int math, int chinese) {this.name name;this.math math;this.chinese chinese;}public int getMath() {return math;}public int getChinese() {return chinese;}// 获取总成绩public int getTotal() {return math chinese;}// 根据方法重写比较器Overridepublic int compareTo(Object o) throws RuntimeException {if (o instanceof Student student) {if (this.getTotal() student.getTotal()) {return 1;} else if (this.getTotal() student.getTotal()) {return -1;}// 比较姓名return this.name.compareTo(student.name);}throw new CompareException(类型不匹配);}Overridepublic String toString() {return Student{ name name \ , math math , chinese chinese } getTotal();}// 自定义异常class CompareException extends RuntimeException {public CompareException() {super();}public CompareException(String message) {super(message);}} } public class ComparableExample {public static void main(String[] args) {Student[] stus {new Student(张三, 23, 90),new Student(李四, 24, 80),new Student(王五, 23, 70),new Student(赵六, 24, 80),new Student(田七, 25, 50)};sort(stus);for (Student student : stus) {System.out.println(student.toString());}}private static void sort(Student[] students) {for (int i 0; i students.length - 1; i) {for (int j 0; j students.length - 1 - i; j) {if (students[j].compareTo(students[j 1]) 0) {Student studentTemp students[j];students[j] students[j 1];students[j 1] studentTemp;}}}} }输出 Student{name张三, math23, chinese90}113 Student{name赵六, math24, chinese80}104 Student{name李四, math24, chinese80}104 Student{name王五, math23, chinese70}93 Student{name田七, math25, chinese50}752. 使用 Comparator 接口实现比较器排序 Comparator 是 java 中的一个接口用于定义对象之间的定制排序规则。 与 Comparable 接口不同Comparator 接口允许在排序时使用独立于对象类的比较逻辑因此可以在不休改对象类的情况下实现多种不同的排序方式当使用了实现 Comparator 接口的比较器后默认的 COmparable 比较器就不起作用了。 使用 Comparator 接口需要重写 compare() 方法该方法的定义语法格式如下 public interface ComparatorT {int compare(T o1, T o2);boolean equals(Object obj); }示例2 按照语文成绩排序 import java.util.Arrays; import java.util.Objects;public class ComparableExample {public static void main(String[] args) {Student[] stus {new Student(张三, 23, 90),new Student(李四, 24, 80),new Student(王五, 43, 70),new Student(赵六, 24, 80),new Student(田七, 25, 50)};// 使用 Arrsys.sort(),传入比较器实现对多个对象比较ChineseComparator comparator new ChineseComparator();Arrays.sort(stus, comparator);for (Student student : stus) {System.out.println(student.toString());}// 比较两个对象 // int n Objects.compare(stus[1], stus[3], comparator); // System.out.println(n);}package kfm.bases.SetDemo;import java.util.Comparator;public class ChineseComparator implements Comparator {// 按照语文成绩排序Overridepublic int compare(Object o1, Object o2) {if (o1 ! null o2 ! null) {if (o1 instanceof Student student1 o2 instanceof Student student2) {return student1.getChinese() - student2.getChinese();} else {throw new RuntimeException(数据类型异常);}} else {throw new RuntimeException(空指针异常);}} }输出 Student{name田七, math25, chinese50}75 Student{name王五, math43, chinese70}113 Student{name李四, math24, chinese80}104 Student{name赵六, math24, chinese80}104 Student{name张三, math23, chinese90}113compare() 方法用于在 Arrays 类调用 sort(比较对象数组, 比较器) 方法时对两个对象进行比较大小。
http://www.huolong8.cn/news/219623/

相关文章:

  • 在中国建设工程造价管理协会网站开封市建设中专网站
  • 做网站包含的技术营销策略ppt模板
  • 减肥单页网站一流的常州网站优化
  • 新乡手机网站建设电话网站建设申请域名
  • 网站制作网址搜索引擎优化代理
  • 建设申请网站首页wordpress 主题替换
  • 电子商务在酒店管理网站建设抖音小程序定制
  • 项目经理网站开发流程做营销型网站哪家好
  • 闲鱼钓鱼网站怎么做公网ip做网站
  • 成都有实力的网站建设合肥房产网最新楼盘
  • 蚌埠做网站有哪些公司太原市住房与城乡建设厅网站
  • 湛江哪家公司建网站最好网站服务器免费吗
  • 网站备案ip查询天眼查企业信用查询
  • 四川网站建设企业网站制作江门网站制作软件
  • 一级站点和二级站点区别用手机做网站的流程
  • 公共网站怎地做网站界面诊断
  • 男女做暧网站网站彩票代理怎么做
  • html5国内网站欣赏网站字体大小合适
  • 网站有吗免费的dw网页设计图片轮播切换
  • 那个旅游网站做攻略最好app模板
  • 青岛商网站建设googleseo排名公司
  • 教育资源网站建设广州番禺网站制作推广
  • 建设企业网站一般多少钱品牌建设有哪些方面
  • 自己电脑上做网站别人访问建设工程消防设计备案哪个网站
  • 2018年企业网站优化应该怎么做吉林市城市建设学校网站
  • qq音乐的网站建设信息购物网站建设技术难点
  • 淘宝客网站怎么做推广计划qq网站空间赞
  • 网络营销是一种什么样的营销长沙专业seo优化公司
  • 网站建设工具开源智能建站设计
  • 常州网站建设公司一件代发货源app