java - 我不知道如何更改我的程序,以便我可以看到十个最大的文件
问题描述
我需要编写一些统计数据,例如计数文件等。但其中一项任务有问题:编写代码来识别 10 个最大的文件。
我的问题是我不知道如何开始。我有代码来获取最大的文件。但是我怎样才能得到最大的十个文件呢?这是一个显示最大文件的类。
@Override
public String getDescription() {
return "find largest file";
}
@Override
public void printResults(List<File> files) {
File largest = files.get(0);
for (File f : files)
if (f.length() > largest.length())
largest = f;
System.out.println("Largest file: " + largest.getName() + " (" + largest.length() + " bytes)");
}
解决方案
您可以按文件大小对文件进行排序并获取前 10 个元素。请注意,如果您的任何文件非常大,您将使用此代码得到奇怪的结果:
@Override
public void printResults(List<File> files) {
files.sort((file1,file2) -> (int)(file1.length()-file2.length())); // This will NOT work correctly if any of the files are over 2.7 GB in size.
List<File> largest = files.subList(0, files.size() > 10 ? 10 : files.size());
System.out.println("Largest files:");
for(File file : largest) {
System.out.println(file.getName() + " (" + file.length() + " bytes)");
}
}
推荐阅读
- regex - 正则表达式组结果
- c# - 强制 google oauth 提示用户选择帐户
- c++ - Boost R-Tree中的最小边界矩形计算
- python - Python如何获取图像然后发布(通过请求库)
- java - 在 Java 中将列表列表转换为 HashTable
- weblogic11g - Weblogic 是否支持跨多个托管服务器的本地配置
- azure - 我可以提交一个天蓝色的日志查询来获取当前的日期时间吗?
- sql - SQL将日期“四舍五入”到一周中的给定日期
- ruby - 红宝石 1.8.7 RUBYOPT(运行时错误)
- woocommerce - 在 WooCommerce 产品页面中显示来自自定义 wp_editor 页面的内容