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 (FileInfo fileInfo : fileInfoList) {
    String system = fileInfo.system;
            // 获取指定系统的文件信息集合
            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();
        }
    }
}

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

posted @ 2024-01-25 14:40  我的心儿  阅读(25)  评论(0)    收藏  举报