package test818;
import java.util.Set;
import java.util.TreeSet;class Test01 { public static void main(String[] args) {
Set<Student> set = new TreeSet<Student>(); // Java 7的钻石语法(构造器后面的尖括号中不需要写类型)
set.add(new Student("Hao LUO", 33));
set.add(new Student("XJ WANG", 32));
set.add(new Student("Bruce LEE", 60));
set.add(new Student("Bob YANG", 22)); for(Student stu : set) {
System.out.println(stu);
} }
}package test818;public class Student implements Comparable<Student> {
private String name; // 姓名
private int age; // 年龄 public Student(String name, int age) {
this.name = name;
this.age = age;
} @Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
} @Override
public int compareTo(Student o) {
return this.age.compareTo(o.age); // 比较年龄(年龄的升序)
// 错误原因:Cannot invoke compareTo(int) on the primitive type int
}}
import java.util.Set;
import java.util.TreeSet;class Test01 { public static void main(String[] args) {
Set<Student> set = new TreeSet<Student>(); // Java 7的钻石语法(构造器后面的尖括号中不需要写类型)
set.add(new Student("Hao LUO", 33));
set.add(new Student("XJ WANG", 32));
set.add(new Student("Bruce LEE", 60));
set.add(new Student("Bob YANG", 22)); for(Student stu : set) {
System.out.println(stu);
} }
}package test818;public class Student implements Comparable<Student> {
private String name; // 姓名
private int age; // 年龄 public Student(String name, int age) {
this.name = name;
this.age = age;
} @Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
} @Override
public int compareTo(Student o) {
return this.age.compareTo(o.age); // 比较年龄(年龄的升序)
// 错误原因:Cannot invoke compareTo(int) on the primitive type int
}}
public int compareTo(Student o) {
return this.age - o.age; // 比较年龄(年龄的升序)
}
//或者
(this.age+"").compareTo(o.age+"")