首页 > 其他分享 >lambda表达式

lambda表达式

时间:2024-01-25 14:44:35浏览次数:26  
标签:String fileInfoList 文档 new 文件类型 FileInfo 表达式 lambda

1.假如有 ABC 等多个系统 每个系统下有多个附件 ,每系统共两种文件类型分别为新设计文档和评审记录文档
2.获取每个系统下该文件类型的上传的最新的文档(每个文件都标有最新日期duptime )
3.Java代码处理逻辑 和代码

要实现获取每个系统下指定文件类型的最新上传文档的逻辑,可以按照以下步骤进行处理:

定义一个存储系统和文件信息的数据结构,可以使用一个自定义的类来表示,包含系统名称、文件类型和上传日期等属性。

创建一个列表(List)来存储所有的系统和文件信息。

遍历列表中的每个系统,对于每个系统,使用过滤器或者循环遍历的方式筛选出指定文件类型的所有文件。

对于每个文件类型的集合,根据上传日期(duptime)进行排序,将最新的文件放在集合的前面。

获取每个文件类型集合中的第一个文件,即为该系统下该文件类型的最新上传文档。

下面是一个示例的Java代码实现:

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

public class Main {
    public static void main(String[] args) {
        // 定义系统和文件信息的数据结构
        class FileInfo {
            String system;
            String fileType;
            String uploadDate;

            public FileInfo(String system, String fileType, String uploadDate) {
                this.system = system;
                this.fileType = fileType;
                this.uploadDate = uploadDate;
            }
        }

        // 创建系统和文件信息的列表
        List<FileInfo> fileInfoList = new ArrayList<>();

        // 添加系统和文件信息到列表中
        fileInfoList.add(new FileInfo("A", "新设计文档", "2021-01-01"));
        fileInfoList.add(new FileInfo("A", "评审记录文档", "2021-02-01"));
        fileInfoList.add(new FileInfo("B", "新设计文档", "2021-03-01"));
        fileInfoList.add(new FileInfo("B", "评审记录文档", "2021-04-01"));
        fileInfoList.add(new FileInfo("C", "新设计文档", "2021-05-01"));
        fileInfoList.add(new FileInfo("C", "评审记录文档", "2021-06-01"));

        // 根据系统进行遍历
        for (String system : new String[]{"A", "B", "C"}) {
            // 获取指定系统的文件信息集合
            List<FileInfo> systemFiles = fileInfoList.stream()
                    .filter(fileInfo -> fileInfo.system.equals(system))
                    .collect(Collectors.toList());

            // 根据上传日期排序文件信息集合
            systemFiles.sort(Comparator.comparing(fileInfo -> fileInfo.uploadDate));

            // 获取每个文件类型的第一个文件信息
            FileInfo latestDesignFile = systemFiles.stream()
                    .filter(fileInfo -> fileInfo.fileType.equals("新设计文档"))
                    .findFirst()
                    .orElse(null);

            FileInfo latestReviewFile = systemFiles.stream()
                    .filter(fileInfo -> fileInfo.fileType.equals("评审记录文档"))
                    .findFirst()
                    .orElse(null);

            // 打印最新的文件信息
            System.out.println("系统:" + system);
            System.out.println("最新的新设计文档:" + latestDesignFile);
            System.out.println("最新的评审记录文档:" + latestReviewFile);
            System.out.println();
        }
    }
}

以上代码会输出每个系统下新设计文档和评审记录文档的最新上传日期。你可以根据实际情况修改代码来适应你的需求。

标签:String,fileInfoList,文档,new,文件类型,FileInfo,表达式,lambda
From: https://www.cnblogs.com/codeLearn/p/17987116

相关文章

  • C语言基础-表达式-day3
    一、表达式一个表达式是一系列运算符和算子的组合,用来计算一个值运算符是指进行运算的动作,比如加法运算符+,减法运算符-算子是指参与运算的值,这个值可能常数,也可能是变量,还可能是一个方法的返回值1、计算时间差#include<stdio.h>intmain(){inthour1,minute1;......
  • AWS ECS + CloudMap + Lambda workshop (一)
    第一篇:创建一个由ECS托管的nodejs服务一)创建拥有AdministratorAccess的IAMUser,在权限设置时,直接给予AdministratorAccess二)ECR服务注册代码仓库输入名称,完成Copy镜像库的URIXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/nodejs-test-app使用docker命令上传代......
  • expect、正则表达式、sed、cut
    一、expectexpect是一个用于自动化交互式任务的工具,它的使用通常需要编写expect脚本,并为该脚本传递必要的参数。expect"命令本身通常不需要太多的参数,但脚本需要为特定的交互任务提供所需的参数和命令。以下是一些常见的expect脚本参数:spawn命令:用于启动要自动化的交互......
  • 正则表达式匹配规则
    1.字符表达式描述[abc]字符集。匹配集合中所含的任一字符。[^abc]否定字符集。匹配任何不在集合中的字符。[a-z]字符范围。匹配指定范围内的任意字符。.匹配除换行符以外的任何单个字符。\转义字符。\w匹配任何字母数字,包括下划线(等价于[A-Za-z0-9_]......
  • 前端学习-正则表达式
    学习MDN-正则表达式章学习MDN-正则表达式章-这个链接也可以什么是正则表达式要点:用于匹配字符串中字符组合的模式js中,正则表达式也是对象用于RegExp的exec和test方法,以及String的match、matchAll、replace、search和split方法gim分别是什么意思参考博客......
  • cron表达式详细讲解
    概念cron表达式是一种用于指定任务在某个时间点或周期性执行的字符串表达式。它包含6个或7个域,每个域代表不同的含义,从左到右依次为"秒分时日月星期几年",其中年不是必须的(不写代表当前年份),cron表达式的配置简洁方便,因此在定时调度任务中被广泛使用参数cron表达式包含6个或7个......
  • Java 将表达式解析为AST
    importorg.antlr.v4.runtime.*;importorg.antlr.v4.runtime.tree.*;publicclassExpressionParser{publicstaticvoidmain(String[]args)throwsException{//创建输入流InputStreaminput=newFileInputStream("expression.txt")......
  • Java开源表达式计算引擎(转载)
    1) jfireEL——高性能EL表达式解析框架jfireEL是快速的EL表达式解析器,支持丰富的EL表达式,7倍于SpringEL的超高性能。2)Aviator——轻量级高性能Java表达式引擎Aviator是一个高性能、轻量级的Java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。支......
  • 求前缀表达式的值
    #include<iostream>#include<algorithm>#include<string>#include<stack>#include<stdlib.h>usingnamespacestd;stack<double>st;intmain(){stringstr[100];intn=0;//在求前缀或者后缀的时候,从前到后读入数据,前缀的话倒着读出数据,从右往左看,有数......
  • C++中lambda与priority_queue一起使用
    想写这篇博客的原因是在刷力扣的347.前K个高频元素一题时,需要使用到优先队列priority_queue,其定义如下:template<classT,classContainer=std::vector<T>,classCompare=std::less<typenameContainer::value_type>>classpriority_queue;第三个参数......