2019.10.31 1.学生名单排序
```java import java.util.*; import java.io.*; public class proA { public static void main(String[] args) { Scanner cin=new Scanner(System.in); ArrayList<Student> list = new ArrayList<Student>(); while(cin.hasNext()) { long t1=cin.nextLong(); String t2=cin.next(); String t3=cin.next(); list.add(new Student(t1,t2,t3)); } Collections.sort(list); for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); } } } class Student implements Comparable<Student>{ private long num; private String name; private String xing; public Student(long num, String name, String xing) { super(); this.num = num; this.name = name; this.xing = xing; } public long getNum() { return num; } public void setNum(long num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getXing() { return xing; } public void setXing(String xing) { this.xing = xing; } public int compareTo(Student o) { return (int) (this.num-o.num); } @Override public String toString() { return num+" "+name+xing; } }这边刚开始没有写Student的toString(),导致输出结果如下图: 加上toString()后,输出正确: 2.comparable接口 可借鉴资料: Java 中 Comparable 接口的意义和用法. 自定义类中Comparable接口的实现:
class Student implements Comparable{ String id; String familyName; String givenName; public int compareTo(Object o) { Student s=(Student)o; return this.id.compareTo(s.id); //如果是id是long的话,那么可以return this.id-s.id } } class Student implements Comparable<Student>{ String id; String familyName; String givenName; public int compareTo(Student o) { return this.id.compareTo(o.id); //如果是id是long的话,那么可以return this.id-s.id } }