javacompare
❶ 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 compareto 和compare是一样的方法吗
compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable<T>接口的,必须重写public int compareTo(T o)方法,比如MapRece中Map函数和Rece函数处理的 <key,value>,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable<T>接口,实现这个接口可同时用于序列化和反序列化。WritableComparable<T>接口(用于序列化和反序列化)是Writable接口和Comparable<T>接口的组合;
compare(Object o1,Object o2)方法是java.util.Comparator<T>接口的方法,它实际上用的是待比较对象的compareTo(Object o)方法。
❸ java.(compareTo的用法)
String 是字符串,它的比较用compareTo方法,它从第一位开始比较,如果遇到不同的字符,则马上返回这两个字回符的ascii值差值..返回值是int类型答
像你题目中,int跟int的比较不能用compareTo方法,直接用大于(>) 小于(<) 或者 等于(==) 不等于(!=)来比较即可
❹ Java中compareTo和compare的区别
这两个方法经常搞混淆,现对其进行总结以加深记忆。
compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable<T>接口的,必须重写public int compareTo(T o)方法,比如MapRece中Map函数和Rece函数处理的 <key,value>,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable<T>接口,实现这个接口可同时用于序列化和反序列化。WritableComparable<T>接口(用于序列化和反序列化)是Writable接口和Comparable<T>接口的组合;
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中的compare
compareTo方法中,如果前面的值大返回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。
备注:除了compareTo方法外,为了比较字母,还有compareToIgnoreCase(忽略大小写比较),用法和compareTo方法相同。
❻ java 中compare 是什么
答案选 D,E
题目的意思是,编译器报错,提示有abstract的方法没有实现。
从选项来看,就是找出那些方法是abstract的。Compare和CompareTo都是来自排序的实现,使用比较器有两种类型一种是实现compareable和comparator,这两种方法分别要求实现compare和compareto方法。
❼ java中compareable和comparetor还有compareTo这三之间的区别是什么,相同点又是什么
这个问题不难!ComparcompareTo是Comparable接口定义的方法。
Comparable表示内在的顺序,如整数(大小),字符串(字典序)
Comparator表示的是某一特性的顺序。如按人口/面积/GDP之类对国家排序
❽ Java中CompareTo()方法的问题
compareTo方法中,如果前面的值大返回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。
备注:除了compareTo方法外,为了比较字母,还有compareToIgnoreCase(忽略大小写比较),用法和compareTo方法相同。
❾ 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 的值。
(9)javacompare扩展阅读
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
❿ java中compareTo()的返回值是什么
compareTo()是两个串对象比较大小,返回一个整数值,如果调用串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值。