java set compare

用来实现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();
}

}
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类型就不用了。看jdk源码和帮助文档
opencv1.0 vc6.0 hm studio 男 helan.globeessay.com 经常吃馒头脸会发胖吗 lineage os nexus 5x cozumel读音 电力无辐射漫画 历届奥运会火炬外观图 魔百盒r3300l刷机 简单java代码视频教程 eclipse导出颜色配置 用go over 造句 判处死刑缓期二年执行 优游娱乐1.0平台电脑版 雪鹤 航天 尘归尘土归土使命召唤 雷克萨斯es250典雅版 一般彩礼钱什么时候给 1220lv3超频 redhat6.2 系统修复 Present a simple gift 金山文件快传下载 虚空幻界 队友 装备 类似爱情男生版 杀人如麻2粉身碎骨图解 keyerror width 英文名字eva含义 沈秀琴 美人鱼这首歌的含义 键盘按键屏蔽工具

Copyright 小梦网 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com