java中 compareTo()的程序代码及用法

 我来答
nanwang21
推荐于2017-09-10 · TA获得超过2943个赞
知道大有可为答主
回答量:1220
采纳率:82%
帮助的人:240万
展开全部
compareTo()是Comparable接口中的方法,
compareTo()就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,int型可以直接比较,可以不用compareTo比较,如果声明的是Date、String、Integer或者其他的,可以直接使用compareTo比较。

示例代码:
public class Test {
public static void main(String[] args) {
String str1 = "1";
String str2 = "2";
System.out.println(compareTo(str1,str2));
}
public static int compareTo(String str1,String str2) {
return str1.compareTo(str2);
}
}
注意事项:
1、模型必须实现Comparable<T>接口
2、compateTo方法内必须做非空判断(规范问题),当然int类型就不用了。
laobaitu0322
推荐于2017-10-02 · TA获得超过744个赞
知道小有建树答主
回答量:900
采纳率:33%
帮助的人:642万
展开全部

用来实现Comaprable接口,比如现在有个学生类,想通过其中score字段来让两个学生类的实例实现排序 ,可以这么写

import java.util.Arrays;

public class Zhidao{

public static void main(String[] args) {
Student[] stu = {new Student("Tom", 90), new Student("Jerry", 95),  new Student("Kate", 70),  new Student("Jack", 98)};
System.out.println("Before:");
for(Student s : stu) {
System.out.println(s.getName() + " : " + s.getScore());
}
Arrays.sort(stu);
System.out.println("After:");
for(Student s : stu) {
System.out.println(s.getName() + " : " + s.getScore());
}
}

}

class Student implements Comparable<Student> {

private String name;
private int score;

public Student(String name, int score) {
this.setName(name);
this.setScore(score);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public int compareTo(Student stu) {
return score - stu.getScore();
}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ceast2009
2014-11-25 · TA获得超过134个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:64.5万
展开全部
看jdk源码和帮助文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式