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

  • 相关阅读:
    每天一道leetcode 搜索旋转排序数组(二分法)
    每天一道leetcode 统计重复个数(循环节)
    python3 简单web目录扫描脚本(后续更新完整)
    每天一道leetcode 盛最多水的容器 (双指针)
    python3 语法学习 类和继承
    python3 语法学习 文件操作及os方法
    python3 语法学习 输入输出美观
    TCP/IP 协议:IP 协议
    TCP/IP 协议:链路层概述
    Http权威指南(二)---读书笔记
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/6429649.html
Copyright © 2011-2022 走看看