当前位置:首页 » 编程语言 » comparejava

comparejava

发布时间: 2025-03-24 16:18:27

java中comparator和compare它们两个是按照从大到小排序的还是从小到大排序的

comparator是个比较器接口,实现这个接口可以自己定义一个排序方式
compare是一个方法,你要定义一个排序必须重写这个方法
有很多比较器,一般默认字典顺序

❷ 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()函数是怎么用的

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。

语法

public int compareTo( NumberSubClass referenceName )

参数

referenceName-- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。

返回值

1、如果指定的数与参数相等返回0。

2、如果指定的数小于参数返回 -1。

3、如果指定的数大于参数返回 1。

Java中的compareTo()函数用法比较另一个函数字符:public int compareTo(String anotherString)

按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。

如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。

这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。

如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。

这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)

如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:

this.length()-anotherString.length()

指定者:接口 Comparable<String> 中的 compareTo

参数:anotherString - 要比较的 String。

返回:如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。

(3)comparejava扩展阅读:

compareTo就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,我下面给出了例子,由于比较的变量我用的是int,int型可以直接比较,所有没有用到compareTo比较,如果声明的是Date、String、Integer或者其他的,可以直接使用compareTo比较,比如以下函数代码用法:

public int compareTo(TestModel1 o) {

return this.str1.compareTo(o.str1);

}

1.当两个比较的字符串是英文且长度不等时,

1)长度短的与长度长的字符一样,则返回的结果是两个长度相减的值

a="hello";

b="hell";

num=1;

或者

a="h";

b="hello";

num=4;

2)长度不一样且前几个字符也不一样,从第一位开始找,当找到不一样的字符时,则返回的值是这两个字符比较的值

a="assdf";

b="bdd";

num=-1;

2.当两个比较的字符串是英文且长度相等时,

1)一个字符

a="a"; //97

b="b"; //98

num=-1;

2)多个字符,第一个字符不同则直接比较第一个字符

a="ah"; //a=97

b="eg"; //e=101

num=-4

3)多个字符,第一个字符相同则直接比较第二个字符,以此类推

a="ae"; //e=101

b="aa"; //a=97

num=4;

热点内容
哪里买安卓播放器最便宜 发布:2025-03-26 11:57:15 浏览:47
xsdk编译后未生成elf文件 发布:2025-03-26 11:51:14 浏览:688
自己的安装包编译到路由器里 发布:2025-03-26 11:50:31 浏览:561
c语言iftrue 发布:2025-03-26 11:48:32 浏览:10
中央编译局工人 发布:2025-03-26 11:47:53 浏览:502
压缩机被子 发布:2025-03-26 11:47:46 浏览:178
linuxpythonnumpy 发布:2025-03-26 11:44:46 浏览:364
想改微信密码从哪里找 发布:2025-03-26 11:30:58 浏览:327
psn存档无法上传 发布:2025-03-26 11:24:34 浏览:47
干货脚本 发布:2025-03-26 11:11:06 浏览:490