java中的compareto ja par – WordPress

您所在的位置:网站首页 javacompare接口 java中的compareto ja par – WordPress

java中的compareto ja par – WordPress

2023-04-13 12:35| 来源: 网络整理| 查看: 265

java中的compareTo方法

compareTo 是接口Comparable 的方法.

String  Integer 等类型是实现了的,

如果是我们自己定义的类,就需要我们自己去实现这个方法.

比如我们要把学生根据成绩排序,学生对象的compareTo 方法里面比较的就是 学生实例的成绩属性.

public int compareTo(Student s1){if (this.getCj()》s1.getCj())//getCj() 是获取成绩属性的值    return 1; else if (this.getCj()==s1.getCj())    return 0; else   return -1;}

java compareto 是怎么比较的

java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值。如果两个字符串首字母不同,则该方法返回首字母的asc码的差值参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值

java中equals和compareTo的区别

equals:比较的是两个字符串中的每个字符是否相同,例如:a=“1243“,b=“1243“,那么a.equals(b)就会返回true,因为a和b两个字符串中的每一个字符都相同,如果对a或者b中的任何一个做任何修改,equals()就会返回false。compareto:这个函数的作用就是对两个字符串按字典排序的方式进行比较,返回两个字符串中第一个不同的字符的ascii码差值。

Java compareTo方法是怎么比较的

ToDoItem类的对象有3属性,

这个compareTo()方法则是将一个ToDoItem对象作为参数,与调用该方法的对象做比较;

比较的方式:先比primary属性的大小,如果相等,则比较secondary属性,不比较item属性。

比较的结果:如果比参数对象大,则返回+1,如果相等,则返回0,如果比参数小,则返回-1。

这样说应该讲明白了吧,如果有帮助采纳下。

BTW平时这些问题可以多看几个类似w3shool、runoob这些教程网站,很快就可以弄懂。

java中equals和compareTo的区别

1、equals的效率高些,compareTo其实就是按照编码的数值做差,根据差比较一致性,它能确定两个String在字典顺序上的前后性,当你只是想知道是否一致时,用equals也行,效果一样。2、equals是Object的方法,要求涉及到比较操作的继承类要自己重写该方法,所以String重写了equals,而compareTo为String的方法。3、所以:value1.compareTo(value2),当value1不为String类型时,会报错。而 value1.equals(value2),都会进行比较。

java的compareto方法是谁的方法

compareTo(Object o) 方法是java.lang.Comparable《T》接口中的方法,

比较有两个方法经常搞混淆,现对其进行总结以加深记忆。

1.compareTo(Object o) 方法是java.lang.Comparable《T》接口中的方法,

当需要对某个类的对象进行排序时,该类需要实现Comparable《T》接口的,必须重写public int compareTo(T o)方法,

比如MapReduce中Map函数和Reduce函数处理的 《key,value》,其中需要根据key对键值对进行排序,

所以,key实现了WritableComparable《T》接口,实现这个接口可同时用于序列化和反序列化。WritableComparable《T》接口(用于序列化和反序列化)是Writable接口和Comparable《T》接口的组合;

2.compare(Object o1,Object o2)方法是java.util.Comparator《T》接口的方法,

它实际上用的是待比较对象的compareTo(Object o)方法。

下面我们写一来看看上面两个方法是怎么用的:

首先,写一个User类,代码如下:

public class User implements Comparable《Object》{    int id;    String name;        public User(int id,String name){        this.id = id;        this.name = name;    }    /*     * Getters and Setters    */    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }           @Override    public int compareTo(Object o) {        if(this ==o){            return 0;                    }        else if (o!=null && o instanceof User) {               User u = (User) o;             if(id《=u.id){                return -1;            }else{            return 1;        }    }else{        return -1;    }}}

接下来,我们写一个测试类Test:

public class Test{    //编写Comparator,根据User的id对User进行排序    private static final Comparator《User》 COMPARATOR = new Comparator《User》() {       public int compare(User o1, User o2) {           return o1.compareTo(o2);//运用User类的compareTo方法比较两个对象             }   };        public static void main(String args) {        ArrayList《User》 student = new ArrayList《User》();        User user1 = new User(1,“yueliming“);        User user2 = new User(2,“yueliming“);            Collections.sort(student, COMPARATOR);//用我们写好的Comparator对student进行排序        for(int i=0;i《student.size();i++){            System.out.println(student.get(i).getId());        }    }}

java的compareTo方法运行的原理

compareTo方法原理:先读取出字符串的第一个“字母”进行比较,比较的方法是ascii码表的值(字符所对应的十进制值),如果前面的大那么返回1,后面的大返回-1;此位置相同,继续比较下一位,直到最后一位,如果都相同的话,就返回0;

举例:int cc= “13“.compareTo(“12“);System.out.println(cc);int dd= “11“.compareTo(“12“);System.out.println(cc);int dd= “aaa“.compareTo(“aaa“);System.out.println(cc);结果就是:1(换行) -1(换行)0。

java中字符的compareTo()比较的是什么!

java中的compareTo()比较的是两个字符串的内容是否相同。使用方法:String s1=“123456“;String s2 =“123456“;boolean eq = s1.compareTo(s2);返回结果为一个boolean型的对象,表示参加比较的两个对象值是否一样。

Java中compareTo是什么意思

public int compareTo(Double anotherDouble)从数字上比较两个 Double 对象。在应用到基本 double 值时,通过此方法进行的比较与通过 Java 语言的数值比较运算符(《、《=、== 和 》= 》)进行的比较之间存在以下两方面的不同: 

此方法认为 Double.NaN 等于它自身,且大于其他所有 double 值(包括 Double.POSITIVE_INFINITY)。 

此方法认为 0.0d 大于 -0.0d。 

这可以确保受此方法影响的 Double 对象的自然顺序 与 equals 方法一致。 

指定者:

接口 Comparable《Double》 中的 compareTo

参数:

anotherDouble – 要比较的 Double 值。 

返回:

如果 anotherDouble 在数字上等同于此 Double,则返回 0;如果 Double 在数字上小于此 anotherDouble,则返回小于 0 的值;如果 Double 在数字上大于此 anotherDouble,则返回大于 0 的值。

如何在Java中比较两个日期 4种方法来在Java中比较两个日期

目录方法1:使用compareTo1、使用compareTo。2、创建日期对象。3、比较日期对象。方法2:使用Equals、After、和Before1、使用equals、after、和before。2、用before方法比较日期。3、用after方法比较日期。4、用equals方法比较日期。方法3:使用Calendar类1、使用calendar。2、 创建Calendar实例。3、用before比较cal1和cal2。4、用after比较cal1和cal2。5、用equals比较cal1和cal2。方法4:使用getTime1、使用getTime。2、创建long类型的time对象。3、进行少于比较。4、进行大于比较。5、进行等于比较。有多种方法可以比较Java日期。日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,这意味着它包含多个比较方法。任何比较两个日期的方法本质上都是在比较日期的时间。方法1:使用compareTo1、使用compareTo。Date实现了Comparable《Date》,因此两个日期可以直接用compareTo方法进行比较。如果日期在同一时间点,则方法返回零。如果比较的日期在date参数之前,则返回一个小于零的值。如果被比较的日期在另一个date参数之后,则返回一个大于零的值。如果日期相等,则返回0值。2、创建日期对象。在开始比较之前,需要为每个日期创建对象。一种方法是使用SimpleDateFormat类。它允许在日期对象中轻松输入日期值。SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd“); //用于在新的日期对象中声明值。创建日期时使用相同的日期格式Date date1 = sdf.parse(“1995-02-23“); //date1是1995年2月23日Date date2 = sdf.parse(“2001-10-31“); //date2 是2001年10月31日Date date3 = sdf.parse(“1995-02-23“); //date3 是1995年2月23日3、比较日期对象。下面的代码将显示每种情况——小于、等于和大于。date1.compareTo(date2); //date1 《 date2,返回小于0的值date2.compareTo(date1); //date2 》 date1,返回大于0的值date1.compareTo(date3); //date1 = date3,将在控制台中输出0方法2:使用Equals、After、和Before1、使用equals、after、和before。可以用equals、after、和before方法比较日期。如果两个日期在同一时间点,equals方法将返回true。示例将使用之前创建的compareTo方法中的日期。2、用before方法比较日期。下列代码展示了true和false两种情况。如果date1在date2之前,before返回true。否则返回false。System.out.print(date1.before(date2)); //输出trueSystem.out.print(date2.before(date2)); //输出false3、用after方法比较日期。下列代码展示了true和false两种情况。如果date2在date1之后,after返回true。否则返回false。System.out.print(date2.after(date1));//输出trueSystem.out.print(date1.after(date2));//输出false4、用equals方法比较日期。下列代码展示了true和false两种情况。如果日期相等,equals返回true。否则返回false。System.out.print(date1.equals(date3));//输出trueSystem.out.print(date1.equals(date2));//输出false方法3:使用Calendar类1、使用calendar。Calendar类也有compareTo、equals、after和before方法,工作方式与上面描述的date类的方法相同。因此,如果日期信息保存在calendar类中,则不需要提取日期来执行比较。2、 创建Calendar实例。要使用Calendar方法,需要几个Calendar实例。幸运的是,你可以从已经创建的Date实例中获取时间。Calendar cal1 = Calendar.getInstance(); //声明cal1Calendar cal2 = Calendar.getInstance(); //声明cal2Calendar cal3 = Calendar.getInstance(); //声明cal3cal1.setTime(date1); //将日期应用于cal1cal2.setTime(date2);cal3.setTime(date3);3、用before比较cal1和cal2。下面的代码应该会输出true,因为cal1在cal2之前。System.out.print(cal1.before(cal2)); //将会输出true4、用after比较cal1和cal2。下面的代码应该会输出false,因为cal1在cal2之前。System.out.print(cal1.after(cal2)); //输出false5、用equals比较cal1和cal2。下面的代码将展示true和false两种情况的示例。条件取决于被比较的calendar实例。代码应该会输出“true“,然后在下一行输出“false“。System.out.println(cal1.equals(cal3)); //输出true: cal1 == cal3System.out.print(cal1.equals(cal2)); //输出false: cal1 != cal2方法4:使用getTime1、使用getTime。尽管前面的任何一种方法都可能更具可读性,因而也更可取,但是也可以直接比较两个日期的时间点。这是对两种原始数据类型的比较,因此可以使用“《“、“》“和“==“来比较。2、创建long类型的time对象。在比较日期之前,必须使用前面创建的Date对象中的数据来创建长整型。幸好getTime()方法可以帮你完成大部分工作。long time1 = getTime(date1); //用date1声明原始数据time1long time2 = getTime(date2); //用date2声明原始数据time23、进行少于比较。使用小于号(《)比较这两个整数值。由于time1小于time 2,所以应该输出第一条消息。为了使语法正确使用了else语句。if(time1 《 time2){System.out.println(“date1 is before date2“); //将会输出这句话,因为time1 《time2}else{System.out.println(“date1 is not before date2“);}4、进行大于比较。使用大于号(》)比较这两个整数值。由于time1大于time 2,所以应该输出第一条消息。为了使语法正确使用了else语句。if(time2 》 time1){System.out.println(“date2 is after date1“); //将会输出这句话,因为time2 》 time1 }else{System.out.println(“date2 is not after date1“);}5、进行等于比较。使用等于符号检查是否相等(==),从而比较这两个整数值是否相等。由于time1等于time3,所以应该输出第一个消息。如果程序执行了else语句,意味着这两个时间不相等。if(time1 == time2){System.out.println(“the dates are equal“);}else{System.out.println(“the dates are not equal“); //将会输出这句话,因为time1 != time2}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3