当前位置: 首页 > news >正文

h5软件搜索引擎营销优化

h5软件,搜索引擎营销优化,十堰秦楚网手机版下载,三亚网约车司机真实收入目录 1 需求2 实现1(第一种方法)2 实现2 (推荐使用这个,快)3 实现3(推荐) 1 需求 现在有一个文件夹,里面会一直存数据,动态的存数据,之后可能会达到100万&am…

目录

  • 1 需求
  • 2 实现1(第一种方法)
  • 2 实现2 (推荐使用这个,快)
  • 3 实现3(推荐)

1 需求

现在有一个文件夹,里面会一直存数据,动态的存数据,之后可能会达到100万,1千万数据。

那么为了查询这个文件夹里面2天之内的数据,根据修改时间进行查询,我们如何操作

2 实现1(第一种方法)

/*** 遍历出一个文件夹下的全部的数据* */public static void getAllFile(File fileInput, List<File> allFileList) {// 获取文件列表File[] fileList = fileInput.listFiles();if (!ArrayUtil.isEmpty(fileList)) {for (File file : fileList) {if (file.isDirectory()) {// 递归处理文件夹// 如果不想统计子文件夹则可以将下一行注释掉getAllFile(file, allFileList);} else {// 如果是文件则将其加入到文件数组中allFileList.add(file);}}}}/*** 一个文件夹下前两天的全部的数据* */public static List<File> listOrderByDate(String fliePath) {// 存放的是一个文件夹下的全部的数据List<File> allFileList = new ArrayList<>();getAllFile(new File(fliePath), allFileList);long start = DateUtil.offsetDay(new Date(), -2).getTime();long end = new Date().getTime();List<File> collect = allFileList.parallelStream().filter(x -> x.lastModified() > start && x.lastModified() < end).collect(Collectors.toList());List<File> sortedCollect = collect.stream().sorted((t1, t2) -> Long.compare(t2.lastModified(), t1.lastModified())).collect(Collectors.toList());return sortedCollect;}
 public static void main(String[] args) {long beginTime = System.currentTimeMillis();String psth = "D:\\100w\\dest";// 遍历文件夹List<File> files = listOrderByDate(psth);System.out.println(files.size());long endTime = System.currentTimeMillis();long l = endTime - beginTime;System.out.println(l/1000);

在这里插入图片描述
在这里插入图片描述

使用上面的方法,72608个文件,大小 都是50MB 左右的文件,花费了15秒

2 实现2 (推荐使用这个,快)

 public static void main(String[] args) throws InterruptedException, ExecutionException {long beginTime = System.currentTimeMillis();String folderPath = "D:\\100w\\dest"; // 替换为实际的文件夹路径int numThreads = Runtime.getRuntime().availableProcessors(); // 获取可用的处理器核心数// 获取当前时间Date currentDate = new Date();// 计算两天前的时间long twoDaysAgoMillis = currentDate.getTime() - 2 * 24 * 60 * 60 * 1000;// 创建文件对象表示文件夹File folder = new File(folderPath);// 获取文件夹下的所有文件File[] files = folder.listFiles();// 创建线程池ExecutorService executor = Executors.newFixedThreadPool(numThreads);// 创建任务列表List<Callable<List<File>>> tasks = new ArrayList<>();// 将文件列表分成多个子列表int batchSize = 10000; // 每个子列表的大小if (files != null) {for (int i = 0; i < files.length; i += batchSize) {final int startIndex = i;final int endIndex = Math.min(i + batchSize, files.length);// 创建子任务,每个子任务处理一个子列表的文件Callable<List<File>> task = () -> {List<File> result = new ArrayList<>();for (int j = startIndex; j < endIndex; j++) {File file = files[j];// 检查文件最后修改时间是否在两天内if (file.lastModified() >= twoDaysAgoMillis) {result.add(file);}}return result;};tasks.add(task);}}// 提交并行任务List<Future<List<File>>> futures = executor.invokeAll(tasks);// 收集结果List<File> result = new ArrayList<>();for (Future<List<File>> future : futures) {result.addAll(future.get());}// 关闭线程池executor.shutdown();// 处理结果,例如打印文件名System.out.println(result.size());long endTime = System.currentTimeMillis();long l = endTime - beginTime;System.out.println(l/1000);

在这里插入图片描述
获取是1秒

3 实现3(推荐)

public static void main(String[] args) {long start = System.currentTimeMillis();String folderPath = "D:\\100w\\dest"; // 替换为实际的文件夹路径List<File> modifiedFiles = getModifiedFilesWithinTwoDays(folderPath);System.out.println("修改时间在2天之内的文件数量: " + modifiedFiles.size());long end = System.currentTimeMillis();long ss =  end - start;System.out.println(ss/1000);// 处理修改时间在2天之内的文件数据}public static List<File> getModifiedFilesWithinTwoDays(String folderPath) {List<File> modifiedFiles = new ArrayList<>();File folder = new File(folderPath);if (folder.exists() && folder.isDirectory()) {File[] files = folder.listFiles();if (files != null) {Instant twoDaysAgo = Instant.now().minus(Duration.ofDays(2));for (File file : files) {try {BasicFileAttributes attrs = Files.readAttributes(file.toPath(), BasicFileAttributes.class);Instant lastModifiedTime = attrs.lastModifiedTime().toInstant();if (lastModifiedTime.isAfter(twoDaysAgo)) {modifiedFiles.add(file);}} catch (Exception e) {e.printStackTrace();}}}}return modifiedFiles;}

在这里插入图片描述

http://www.hkea.cn/news/114910/

相关文章:

  • 株洲专业网站排名优化深圳产品网络推广
  • 深圳美食教学网站制作如何免费搭建自己的网站
  • 兰州移动端网站建设广东整治互联网霸王条款
  • 彩票网站该怎么建设天津seo实战培训
  • 原平的旅游网站怎么做的新冠疫情最新情况最新消息
  • 网站开发软件著作权归谁seo外包
  • 小说网站的网编具体做哪些工作南宁网站快速排名提升
  • 承德网站设计seo互联网营销培训
  • 工信部网站备案查询 手机seo专员的工作内容
  • 淘宝活动策划网站视频营销成功的案例
  • 精准营销数据杭州排名优化软件
  • 中卫网站建站设计seo学习论坛
  • wordpress初始登录seo排名赚app靠谱吗
  • 软件外包保密协议seo相关岗位
  • 后台网站开发文档下载班级优化大师app
  • 辛集城乡建设管理局网站网络营销网络推广
  • 阿里云部署一个自己做的网站吗电商网站搭建
  • 免费汽车租赁网站模板网站域名解析ip查询
  • 企业解决方案官网国内seo排名分析主要针对百度
  • 变态版手游石景山区百科seo
  • 阿里云控制台登录入口seo矩阵培训
  • wordpress苗木模板网站搜索排优化怎么做
  • 网站图片引导页怎么做重庆seo招聘
  • 如何做属于自己的领券网站郑州百度网站优化排名
  • 建设银行益阳市分行桃江支行网站公司页面设计
  • vps 网站上传网站seo优化是什么意思
  • wordpress cos腾讯云seo网站优化收藏
  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化