java compareble数组,[Java 11] Comparable 数组排序 之一 与 Comparator 数组排序之二

Comparable

package com.qunar.basicJava.javase.p11CommonlyUsedClass;

import java.util.Arrays;

/**

* Author: libin.chen@qunar.com Date: 14-5-21 19:59

*/

class Student implements Comparable { // 指定泛型类型

private String name;

private int age;

private float score;

Student(String name, int age, float score) {

this.name = name;

this.age = age;

this.score = score;

}

@Override

public String toString() {

return "Student{" +

"name='" + name + '\'' +

", age=" + age +

", score=" + score +

'}';

}

public int compareTo(Student stu) { // 覆写 compareTo() 方法

if (this.score > stu.score) {

return -1;

} else if (this.score < stu.score) {

return 1;

} else {

if (this.age > stu.age) {

return 1;

} else if (this.age < stu.age) {

return -1;

} else {

return 0;

}

}

}

}

public class ComparableDemo01 {

public static void main(String[] args) {

Student stu[] = {new Student("张三", 20, 90.0f), new Student("李四", 22, 90.0f), new Student("王五", 20, 99.0f)};

Arrays.sort(stu);

for (int i = 0; i < stu.length; i++) {

System.out.println(stu[i]);

}

}

}

Comparator 数组排序之二,类似于 C/C++ 的方法,在 java 中叫做补救措施

Student 类

package com.qunar.basicJava.javase.p11CommonlyUsedClass.Comparator;

/**

* Author: libin.chen@qunar.com Date: 14-5-21 21:32

*/

public class Student {

private String name;

private int age;

public Student(String name, int age) {

this.name = name;

this.age = age;

}

@Override

public boolean equals(Object obj) {

if (this == obj) {

return true;

}

if (!(obj instanceof Student)) {

return false;

}

Student stu = (Student)obj;

if (stu.name.equals(this.name) && stu.age == this.age) {

return true;

} else {

return false;

}

}

public String toString() {

return name + "\t\t" + age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

StudentComparator 类

package com.qunar.basicJava.javase.p11CommonlyUsedClass.Comparator;

import java.util.Comparator;

/**

* Author: libin.chen@qunar.com Date: 14-5-21 21:40

*/

public class StudentComparator implements Comparator {

public int compare(Student s1, Student s2) {

if (s1.equals(s2)) {

return 0;

} else if (s1.getAge() < s2.getAge()) {

return 1;

} else {

return -1;

}

}

}

ComparatorDemo 主函数,main 例子

package com.qunar.basicJava.javase.p11CommonlyUsedClass.Comparator;

import java.util.Arrays;

/**

* Author: libin.chen@qunar.com Date: 14-5-21 21:38

*/

public class ComparatorDemo {

public static void main(String[] args) {

Student stu[] = {new Student("张三", 30), new Student("李四", 14), new Student("王五", 18)};

Arrays.sort(stu, new StudentComparator());

for (Student student : stu) {

System.out.println(student);

}

}

}

洪水风险图制作全流程:HEC-RAS ArcGIS 的耦合应用 本文系统介绍HEC-RAS水动力模拟软件在水利工程中的应用技术。内容涵盖:1)软件理论安装;2)一维地形数据导入河网构建;3)恒定流/非恒定流计算及模型调试要点;4)构筑物建模技术(桥梁、堰闸等);5)二维水动力模拟溃坝分析;6)洪水风险图绘制。重点讲解水面线调试、糙率选取、报错分析等实操难点,通过案例教学实现从基础到工程应用的全流程技术掌握。该培训适用于防洪评价、河道治理等水利工程数值模拟需求。 阅读详情

相关推荐

雷达参数的设置

采样率又可以叫做采样速率或者,顾名思义就是每秒采集的次数。该值越高,单位时间内对信号的采集越多,采样率的单位可以用Hz或者sps表示(sps是采样率,是每秒采样点的数量,sp表示采样点数),一般1sps=1Hz。采样时间是采样点数和采样周期的乘积得到的结果。假设实际采样率为4560ksps,采样点数为256,那么采样周期为1/4560(ms),那么ADC的采样时间就为256*(1/4560)(ms)=0.056ms=56微秒。

qq_50974341的博客 1875

Java学习之数组Comparable接口

Java学习之数组详解,Comparable接口,冒泡算法及二分法查找详解

qq_54190167的博客 1100

华为OD机试双机位C卷-热点网站统计 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 热点网站统计,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。 华为od机考真题 - 热点网站统计。

qq_45776114的博客 748

JAVA中的Comparable[]

Java 中,类型声明在变量名之前。例如,String b表示它b是String类的一个实例。Java 是一种静态的强类型语言。 所以Comparable[] a说这a是一些实现Comparable接口的类的实例数组。这意味着数组的每个元素要么是 null 要么是有compareTo方法的东西。查看less方法实现,您可能会在compareTo那里找到调用。 一些实现可比性的标准类的例子: 整数,所以new Integer[] {1, 2, 3, 4, 5}可以作为第一个参数传递给这个函数 Double

weixin_45780649的博客 1137

Comparable 的 使用 和 int类型数组排序

java 里面有个Arrays 的类(java.util.Arrays),他里面有一个sort的方法(public static void sort(int[]a)),这个方法就可以直接对这个数组进行排序!如下 public static void main(String[] args) { int[] arr = {3,8,5,3,12,10}; Arra...

weixin_37878255的博客 1026

Java 集合11 比较器Comparator

//还是承接10 中所讲的例子。

Stitch__的博客 961

Java比较接口: Comparator的使用方式

一、新建一个比较器类,实现Comparator接口,T可以不实现其他接口 public class PersonCompartor implements Comparator<Person> { @Override public int compare(Person o1, Person o2) { return o1.getAge()-o2.getAge(); } } 二、使用比较器来排序 public class Person { S

haohaoxuexiyai的博客 2722

Comparable接口和Comparator接口的区别使用

一、Comparable用法 1、一个类在设计之时就要实现对该类对象的排序功能,那么这个类要实现Comparable接口,实现public int compareTo(T t)方法。如代码中的Student类。 对于实现Comparable接口的类: 1. 调用java.util.Arrays.sort(Object[] a)对包含对象实例的数组进行排序。 2. 调用java.util.Coll...

lxn1214的博客 321

Java之面向对象:下》

面向对象基础(下)

TheMyth142857的博客 1285

Java常用类库——Arrays类(用于普通数组操作)、比较器(ComparableComparator 用于对象排序)的使用...

学习目标 掌握Arrays类的使用 掌握填充以及排序器 掌握Comparable比较接口的使用 了解比较器的基本排序原理 掌握Comparator比较接口的使用 Arrays类 Arrays类是数组的操作类,定义在java.util包中,主要的功能可以实现数组元素的查找,数组内容的填充、排序等。 有以下的方法: public static boolean equals(int[] a, int[...

iteye_18817的博客 360

Java中的排序接口Comparable和比较器Comparator详解

Java中的排序接口Comparable和比较器Comparator详解

向上的"狼"的博客 1万+

java Comparator接口的返回 1,-1,0 的理解

针对jdk8中的List.sort() Comparator(int a, int b) if( a < b ){ // 返回负数或0值,不交换 // 返回正数值,交换ab } if( a > b){ // 返回负数值,交换ab // 返回正数或0值,不交换 } if( a == b ){ //返回非0值,会报异常Comparison method violates its general contract! } a - b//正序 b - a//倒序 Comparator(dou

blvyoucan的专栏 5049

java比较之ComparableComparator

文章目录介绍1.Comparable2.Comparator总结 介绍 ComparableComparator都是java的接口,Comparablejava.lang包下,而Comparatorjava.util包下,两者功能都是排序。 1.Comparable Comparable可以认为是一种内部比较器,我们在类定义时实现Comparable接口,并重写其compareTo方法,其返回类型为int 代码测试如下: class Student implements Comparable<S

m0_62476684的博客 1509

Java实现自定义对象的排序

在这之前,首先来说一下用Android Studio来调试Java程序,控制台出现乱码的问题。至于怎么用Android Studio创建Java程序,网上很多。 public class JavaBase { public static void main(String[] args) { System.out.println("排序前" ); }

9704

Java如何给数组排序Comparable方式

通过给类继承接口的方式来 重写compareTo方法 然后自定义排序规则,在合作开发的过程中 每个人更能很好的负责自己模块,提高开发效率。

jakelihua 431

java: Comparable比较器,数组对象比较器

Arrays只适合一个数组/对象内的数值进行比较, Comparable比较器(Compara)适合数组,对象,队列等排序Comparable是一个接口类,实现此接口必须复写:compareTo 方法, compareTo方法会返回三个值:1,0,-1,可以利用这三个值进行排序   //比较器 class Student2 implements Comparable&lt;Student2&...

weixin_33750452的博客 169

java比较器(一)实现Comparable接口操作对象数组排序

java中有提供java.util.Arrays类操作数组类型,并封装好了 static void sort(数据类型[] a)方法。 以下图为例: //使用Array实现对象数组排序 public class ArraysDemo { public static void main(String[] args) { int[] temp = new int[]{17, 28, 57425, 5, 4, 28, 4}; Arrays.sort(temp);/

weixin_45580169的博客 1003

Day41.Java比较器.Comparable自然排序Comparator定制排序 -Java常用类#、集合、IO

Java比较器 在Java中经常会设计到对象数组排序问题,那么就设计到对象之间的比较问题。 Java实现对象排序的方法有两种: 方式一: 自然排序: java.lang.Comparable 方式二: 定制排序: java.util.Comparator 自然排序: Comparable /* 一.说明: Java中的对象,正常情况下,只能进行比较: == 或 != 。不能使用 > 或 < 的 但是在开发场景中,我们需要对多个对象进行排序,言外之

阿昌爱Java 604

java comparable list_java如何对Arraylist数组进行排序(用comparable

展开全部看代码:importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;publicclassDemo{publicstaticvoidmain(String[]args)throwsException{e5a48de588b6323131333532363134313032...

weixin_42184924的博客 329

java compareble数组,模版步骤模式-java数组排序Comparable接口用法

模版方法模式--java数组排序Comparable接口用法1、概述Arrays类有一个静态方法sort,利用这个方法我们可以传入我们要排序数组进去排序,因为我们传入的是一个数组的引用,所以排序完成的结果也通过这个引用的来更改数组。对于整数、字符串排序,jdk提供了默认的实现,如果要对一个对象数组排序,则要自己实现java.util.Comparator接口。java.util.Arrays中...

weixin_30707165的博客 329

利用Comparable接口实现对对象数组排序

Arrays 类中的sort方法承诺可以对对象数组进行排序,但是需要对象所属的类实现Comparable接口 任何实现Comparable接口的对象都需要实现该方法 并且在Java SE 5.0之前该方法的的参数必须是Object类型对象,返回一个整形数值 。在Java SE 5.0之后Comparable接口已经改进为泛型类型。 1 public interface Comparable<T> { 2 public int compareTo(T o); 3 } 对于c...

qq_43663493的博客 809

Proteus V9 SP6安装包

Proteus V9 SP6专业版,功能强大,再也不需要Keil联合调试了。

opencv 4.1中文官方文档v1.1版

opencv 4.1中文官方文档v1.1版

上一篇: php快速查找,PHP快速查找、排序
下一篇: java桥连接数据库,Java 与数据库的桥梁——JDBC
栢沐罙
博客等级 码龄9年 27粉丝 74原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值