自然排序Comaparable的使用
Posted lsswudi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然排序Comaparable的使用相关的知识,希望对你有一定的参考价值。
public interface Comparable<T>
该接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的
compareTo
方法被称为其自然比较方法 。注意让类实现该接口,注意泛型
String类重写了compareTo方法 所以可以直接调用
注意重写方法时规则的运用。
this代表s2 s代表s1
测试类
package com.Test01; import java.util.TreeSet; public class TreeSetDemo02 public static void main(String[] args) TreeSet<Student> ts = new TreeSet<Student>(); Student s1 = new Student("xishi", 29); Student s2 = new Student("diaochan", 29); Student s3 = new Student("yangyuhuan", 21); Student s4 = new Student("wangzhaojun", 26); ts.add(s1); ts.add(s2); ts.add(s3); ts.add(s4); for (Student s : ts) System.out.println(s.getName() + "," + s.getAge());
Student类
package com.Test01; import java.util.Objects; import java.util.TreeSet; public class Student implements Comparable<Student> private String name; private int age; public Student() public Student(String name, int age) this.name = name; this.age = age; public String getName() return name; public void setName(String name) this.name = name; public int getAge() return age; public void setAge(int age) this.age = age; @Override public boolean equals(Object o) if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && Objects.equals(name, student.name); @Override public int hashCode() return Objects.hash(name, age); @Override public int compareTo(Student s) int num = this.age - s.age; int num2 = num == 0 ? this.name.compareTo(s.name) : num; return num2;
以上是关于自然排序Comaparable的使用的主要内容,如果未能解决你的问题,请参考以下文章