compareTo()

我们为什么需要compareTo()?

  数据,是可以比较大小的,比如:2大于1。那么我们自己写的类,也是一种引用数据类型,可以不可以自定义规则,让它也能有大小的比较呢?

  这时候,就需要重写compareTo()方法来实现大小的比较。

compareTo()的重写

  compareTo与toString()等方法不同,它并不是在Object类中定义的,因为毕竟不是所有的类都需要比较大小嘛。

  要想类可以比较大小,我们需要让类继承Comparable接口,然后实现该接口中的compareTo()方法,实例:

class Student implements Comparable<Student> {
	
	private Integer id;
	private String name;
	private Integer age;

    @Override
    public int compareTo(Student o) { // 负数:小于    整数:大于    零:等于
        if (this.id > o.id) {
            return 1;
        } else if (this.id < o.id) {
            return -1;
        } else {
            return 0;
        }
    }

	public Student(Integer id, String name, Integer age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
}

public class Test {

	public static void main(String args[]) {
		
		Student s1 = new Student(1,"小猪",18);
		Student s2 = new Student(2,"小猫",25);
		System.out.println(s1.compareTo(s2));
	    
	}
}
-------------------------------------
输出结果为:
-1

  根据Java的规定,比较对象比传入参数小时,结果返回负数,等于时返回0,大于时返回正数。

  在使用可排序集合,如TreeMap、TreeSet时,集合中的元素类必须要实现compareTo()方法。

发布了51 篇原创文章 · 获赞 0 · 访问量 1278
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览