当前位置: 代码迷 >> J2SE >> java中依照字母数字顺序输出
  详细解决方案

java中依照字母数字顺序输出

热度:44   发布时间:2016-04-24 13:04:37.0
java中按照字母数字顺序输出

  如果有学生信息

  姓名 成绩
  Zhang 80
  Zhang 68
  Zheng 71
  Li 80

  需要先按照姓名的字母顺序排序,如果字母相同,则按照成绩由小到大排序,这个在java中怎么实现呢?
  
  输出结果如下

  姓名 成绩
  Li 80
  Zhang 68
  Zhang 80
  Zheng 71
  
  有简单代码吗?
 

------解决方案--------------------
代码如下:
Java code
public class SortTest {    public static void main(String[] args) {        Student s1 = new Student("Zhang", 80);        Student s2 = new Student("Zhang", 68);        Student s3 = new Student("Zhang", 71);        Student s4 = new Student("Li", 80);        Student[] ss = { s1, s2, s3, s4 };        // 以上是测试的数组                for (Student s : ss)            System.out.println(s);                // 这个就是排序了        Arrays.sort(ss);        System.out.println("=============");        for (Student s : ss)            System.out.println(s);    }}/** *  * 类Student实现 Comparable接口,以方便排序 *  *  */class Student implements Comparable<Student> {    public String name;    public int point;    public Student() {    }    public Student(String name, int point) {        this.name = name;        this.point = point;    }    /**     *      * 实现Comparable<Student>接口的方法     *      */    public int compareTo(Student o) {        int stringCompare = this.name.compareTo(o.name);        if (stringCompare == 0) {            // 如果名字比较相同,返回的是成绩的比较结果            return this.point - o.point;        } else {            // 如果名字比较不同,直接返回比较结果            return stringCompare;        }    }    /*     * 方便打印     */    public String toString() {        return this.name + "\t" + point;    }}
  相关解决方案