小编Wil*_*lls的帖子

在长文件列表中查找 3 个最近修改的文件

我有一个文件列表,我想对它进行排序并提取上次修改的前 3 个文件。

约束:由于下游应用程序的兼容性问题,我无法使用 Java 7

我目前的选择

解决方案1

File[] files = directory.listFiles();    
Arrays.sort(files, new Comparator<File>(){
    public int compare(File f1, File f2)
    {
        return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
    } });
Run Code Online (Sandbox Code Playgroud)

解决方案2

public static void sortFilesDesc(File[] files) {
  Arrays.sort(files, new Comparator() {
    public int compare(Object o1, Object o2) {
      if ((File)o1).lastModified().compareTo((File)o2).lastModified()) {
        return -1;
      } else if (((File) o1).lastModified() < ((File) o2).lastModified()) {
        return +1;
      } else {
        return 0;
      }
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

问题

以上两种解决方案需要更多的时间来执行和内存。我的文件列表包含大约 300 个 tar 文件,每个文件大小为 200MB。所以它消耗更多的时间和内存。

有没有办法有效地处理这个问题?

每个比较操作都使用一个内存较高的文件对象,有没有办法释放内存并有效地处理它?

java memory sorting memory-management file

5
推荐指数
1
解决办法
6523
查看次数

java中的Httpclient,不使用任何第三方库

我试图在不允许我们使用互联网的工作场所中实现一些自动化(并非所有网站都允许使用)。

要求:我有一个表单,其中有一个文本框和一个提交按钮,我必须在文本框中输入一些内容并提交表单。我需要解析 HTML 并获取特定文本的响应。页面是用JSP编写的

限制:我无法访问第三方库并且必须使用 Java 6。

请引导我走向正确的方向。

java httpclient

1
推荐指数
1
解决办法
1204
查看次数

标签 统计

java ×2

file ×1

httpclient ×1

memory ×1

memory-management ×1

sorting ×1