zoukankan      html  css  js  c++  java
  • 如何实现对ArrayList排序 sort()

    package com.collection;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;

    public class Test {
         public static void main(String[] args) {

              Student zlj = new Student("丁晓宇", 21);
              Student dxy = new Student("赵四", 22);
              Student cjc = new Student("张三", 11);
              Student lgc = new Student("刘武", 19);

              List<Student> studentList = new ArrayList<Student>();
              studentList.add(zlj);
              studentList.add(dxy);
              studentList.add(cjc);
              studentList.add(lgc);

              System.out.println("按年龄升序:");
              Collections.sort(studentList, new SortByAge());
              for (Student student : studentList) {
               System.out.println(student.getName() + " / " + student.getAge());
              }
              System.out.println();
              System.out.println("按姓名排序:");
              Collections.sort(studentList, new SortByName());
              for (Student student : studentList) {
               System.out.println(student.getName() + " / " + student.getAge());
              }
             }
            }

            class SortByAge implements Comparator {
             public int compare(Object o1, Object o2) {
              Student s1 = (Student) o1;
              Student s2 = (Student) o2;
             if (s1.getAge() > s2.getAge())
               return 1;
              return -1;
             }
            }

            class SortByName implements Comparator {
             public int compare(Object o1, Object o2) {
              Student s1 = (Student) o1;
              Student s2 = (Student) o2;
              return s1.getName().compareTo(s2.getName());
             }
    }

    输出结果:

    按年龄升序:
    张三 / 11
    刘武 / 19
    丁晓宇 / 21
    赵四 / 22

    按姓名排序:
    丁晓宇 / 21
    刘武 / 19
    张三 / 11
    赵四 / 22

  • 相关阅读:
    编程注意事项(2010.12.25)
    单链表冒泡排序
    关于选书与读书
    记录一下后几年要看的书
    我的第一次面试经历
    使用IntelliJ IDEA配置Tomcat(入门)
    linux中Find命令的使用
    profile,bashrc,bash_profile之间的区别和联系
    Linux的启动流程、模块管理与boot Loader
    linux(Centos)下软件安装的方式总结
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/6429649.html
Copyright © 2011-2022 走看看