List集合, 时间正序排列、倒序排序

摘要:
List集合,时间正序排列、倒序排序importcom.alibaba.fastjson.JSON;importcom.example.demo.Demo.dto.Student;importcom.example.demo.Demo.util.Order;importjava.util.*;@Order(2)publicclassTest{publicstaticvoidmain(String[
  1. List集合, 时间正序排列、倒序排序
import com.alibaba.fastjson.JSON;
import com.example.demo.Demo.dto.Student;
import com.example.demo.Demo.util.Order;

import java.util.*;

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

        //MySQL识别的日期格式
        String str01 = "2021-06-26T12:11:52.000+0000";
        String str02 = "2021-06-25T12:08:41.000+0000";
        String str03 = "2021-06-27T12:18:22.000+0000";


        Student student01 = new Student(1, "张三", dealDateFormat(str01));
        Student student02 = new Student(2, "李四", dealDateFormat(str02));
        Student student03 = new Student(3, "王五", dealDateFormat(str03));


        List<Student> arrayList = new ArrayList<>();
        Collections.addAll(arrayList, student01, student02, student03);


        //TODO:正序排列[最小的时间在前]
        //输出: [{"date":"2021-06-25 12:08:41","name":"李四","id":2},{"date":"2021-06-26 12:11:52","name":"张三","id":1},{"date":"2021-06-27 12:18:22","name":"王五","id":3}]
        Collections.sort(arrayList, Comparator.comparing(Student::getDate));
        System.out.println(JSON.toJSON(arrayList));


        //TODO:倒序排序[最大的在前]
        //输出: [{"date":"2021-06-27 12:18:22","name":"王五","id":3},{"date":"2021-06-26 12:11:52","name":"张三","id":1},{"date":"2021-06-25 12:08:41","name":"李四","id":2}]
        Collections.sort(arrayList, new CalendarComparator());
        System.out.println(JSON.toJSON(arrayList));
    }

    // 时间倒序排序
    private static class CalendarComparator implements Comparator {
        public int compare(Object object1, Object object2) {// 实现接口中的方法
            Student p1 = (Student) object1; // 强制转换
            Student p2 = (Student) object2;
            return p2.getDate().compareTo(p1.getDate());
        }
    }

    // dealDateFormat方法参考另一篇博客: https://www.cnblogs.com/Twittery/p/14943656.html
}

免责声明:文章转载自《List集合, 时间正序排列、倒序排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Git使用:&amp;lt;Android Framework 之路&amp;gt;Android5.1 MediaScanner下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redis 在 php 中的应用(key篇)

本文为我阅读了redis参考手册之后结合博友的博客编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: KEY(键) DEL EXISTS EXPIRE EXPIREAT keys MOVE PERSIST TTL RANDOMKEY RENAME RENAMENX TYPE SORT KEY(...

Java中集合总结

Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合,这些集合类都位于java.util包中,但是与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的引用。 Java集合主要分为以下三种类型: Set(集):集合中的对象不按特定方式排序,且没有重复对象。它的有些实现类能对集合中的对象按照特地方...

Java8对list集合进行排序、过滤、分组、去重、转map、遍历赋值等操作

转载自: https://www.e-learn.cn/topic/2522732 importlombok.Data; import java.util.*; importjava.util.stream.Collectors; public classTestMain { //测试集合 private List<News&g...

[集合操作]List对象数组获取元素值非空对象及根据对象元素值排序取最大&amp;amp;取对象数组的对象元素集合&amp;amp;条件去重&amp;amp;条件分组

如果有个List如下图所示,我需要把这个List先把 url 为空的过滤,然后根据id分组,取date字段最大的对象,形成新的集合 List data = [ {"date":"2018-10-12", id:"1",url:"hdjf"}, {"date":"2018-10-13", id:"1",url:"hdjf"}, {"date":...

Java 关于SpringbootJPA分页及排序

创建Pageable对象 看了网上很多博客,都是在用 new PageRequest的方法创建Pageable对象。可是估计很多同学写了之后才发现原来这个方法作者已经标记为过时了; 替代的方法是不要new PageRequest,而是直接用 PageRequest.of这个方法 根据你的需求选择入参; 下面贴出对比 @Override @Transact...

MongoDB分页的Java实现和分页需求的思考

前言 传统关系数据库中都提供了基于row number的分页功能,切换MongoDB后,想要实现分页,则需要修改一下思路。 传统分页思路 假设一页大小为10条。则 //page 1 1-10 //page 2 11-20 //page 3 21-30 ... //page n 10*(n-1) +1 - 10*n MongoDB提供了skip()和...