当前位置: 首页 > 面试题库 >

如何根据名称,大小和最后修改时间对目录列表进行排序?

郎吉星
2023-03-14
问题内容

我只是想弄清楚如何根据名称,上次修改时间和大小对目录列表进行排序。我知道您可以访问文件的名称,大小,最后使用File方法修改的时间,但是我不确定如何对其进行排序。如果有人能指出我正确的方向,那就太好了。

public void printDirectoryContents(String path, PrintWriter writer)
{
    File[] list = root.listFiles();
    Arrays.sort(list);

    for ( File f : list )
    {           
        String name = f.getName();
        long lastmod = f.lastModified();
        SimpleDateFormat simple = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
        String formatted = simple.format(new Date(lastmod));
        long length = f.length();

    }
}

问题答案:

您应该实现一个Comparator来根据您提到的属性对文件进行排序,并将其作为参数传递给Arrays.sort方法。

    Arrays.sort(list, new Comparator<File>()
    {
        public int compare(File file1, File file2)
        {
            int result = ...
            .... comparison logic
            return result;
        }
    });


 类似资料:
  • 我有这个列表,我想在我的屏幕上按照时间[“time in”]对它进行排序。有人知道我该怎么做吗?

  • 我使用java数组列表按大小对目录中的文件进行排序&&如何在java中按元素大小对ArrayList进行排序? 我的问题是实现比较器的最佳方式是什么,这样排序会更快?我被告知100K文件的排序应该在几秒钟内完成,而不是在几分钟内,因为文件的大小是长的。是否有更好的方法来实现比较器? null 可以观察到,在20K之后,排序需要几分钟。我有什么建议可以降低排序时间吗? 我还查阅了https://do

  • 如何根据条目列表的值和键对地图进行排序 首先按Value desc排序,然后如果值冲突按Key Desc排序 给定地图中的示例: 预期订单:

  • 我有一个像这样的数据框- 我有一个这样的列表- 现在,我想根据列名列表对数据框进行排序 因此,新的数据框将有列名称-

  • 我有一个,其中的键是字符串。我需要获取这些键并根据键大小(即字符串长度)对其进行排序,然后将其存储在某个中。 注意:如果两个键的大小相同,那么我们可以把它放在任何顺序。 为(如)。

  • 问题内容: 我有以下清单 我想根据其子列表的长度对列表进行排序。结果应为: 问题答案: 使用和中可用的参数。它指定一个参数的功能,该参数用于从每个列表元素中提取比较键