import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
public class SortingFiles
{
public static void main(String[] args)
{
File dir=null;
File[] paths;
final ArrayList<String> al= new ArrayList<String>();
try{
// create new file object
dir = new File("D:\\New folder\\New");
// array of files and directory
paths = dir.listFiles();
ArrayList<File> fileList = new ArrayList<File>();
for(File file:paths)
{
// prints filename and directory name
System.out.println(file.getName()+" - " +file.length() );
al.add(file.getName());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
for(int i=1; i<al.size(); i++)
{
System.out.println("\n Aftr : " +al.get(i) );
}
但它不起作用..任何人都可以帮助我...我正在尝试不使用“import org.apache.commons.io.fileUtils;”。那怎么办呢?
在al
中使用(name
、size
)对象,然后使用collections.sort
使用自定义的比较器
进行排序(或使该自定义对象)。类似于:
public class FileData implements Comparable<FileData> {
private final String fileName;
private final long fileSize;
public FileData(final String fileName, final long fileSize) {
this.fileName = fileName;
this.fileSize = fileSize;
}
// getters
@Override
public String toString() {
return (fileName == null ? "" : fileName) + " - " + fileSize;
}
@Override
public int compareTo(FileData other) {
return Long.compare(fileSize, other.fileSize);
}
}
然后:
public class SortingFiles
{
public static void main(String[] args) {
// ...
final List<FileData> al = new ArrayList<FileData>();
// ...
for (final File file: paths) {
final FileData fileData = new FileData(file.getName(), file.length());
System.out.println(fileData);
al.add(fileData);
}
// ...
Collections.sort(al);
// ...
未测试,甚至未编译(在此键入)
我试图建立一个方法,将排序一个二维数组的双打按列。基于所提供的规范,此方法也不应该采用长度不等的行的粗糙数组。我正在使用双[][]mdarray={{3.0, 4.0, 1.0, 8.0},{13.0, 2.0, 12.0, 9.0}测试这个 使用打印方法时,应将其显示为 3.0, 2.0, 1.0, 8.0, 13.0, 4.0, 12.0, 9.0, 使用单独的打印方法输出结果时,数组似乎没有
也许有更合适的解决方案?:/
我有以下课程 我正在尝试按贡献者名称和角色名称对ResourceContributor列表进行排序。到目前为止,我得到的是: 我已经尝试使用then比较,但还不知道如何使用它。
问题内容: 这是我的代码,它有效!但我希望能够根据名称,大小,修改日期等对文件列表进行排序 问题答案: 您可以定义许多不同的类来进行不同的比较,例如: 然后,您只需将它们换出: 要么
我一直在做拼字游戏作业。我需要从列表中读取单词,然后读取每个字符并赋值,最终为每个单词分配一个总分。已经完成了!唷。现在我需要使用比较器将单词从最高分到最低分进行排序。读了很多,还是很迷茫。我知道我可以使用接口,但也有使用lambda表达式的比较器,这是我想去的方向。我只是不知道该怎么做。我需要比较每个单词的sumValue,然后按降序打印单词。 我创建了 2 个循环来读取单词 (i),然后是字符
我有一个包含下一个数据的ArrayList:(int)、(int)、(int)、(String)。我按字段对此数组进行排序。如果长度与提交的相等,我如何赋予优先级(优先级将具有具有水平位置的长度)。例如,给定输入: 输出应为: 以下是我所拥有的: