使用 Collections.sort 和 SizeFileComparator 从 ArrayLlist<File> 中排序文件对象

Sorting File objects from a ArrayLlist<File> using Collections.sort and SizeFileComparator

我的目标是按升序对 ArrayList 进行排序。 我有这个代码:

Collections.sort(files, SizeFileComparator());

或者应该是:

Collections.sort(files, new SizeFileComparator());

它们都不起作用,我得到一个错误,指出 SizeFileComparator() 不存在 class。 我正在导入 java.io.*;这是 SizeFileComparator 的 link 到 api: http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html?org/apache/commons/io/comparator/package-summary.html

我假设我实施 API 的方式有问题。

SizeFileComparator 不在 java.io 下,它在 org.apache.commons.io.comparator 中,这就是您需要从中导入它的地方。要么明确:

import org.apache.commons.io.comparator.SizeFileComparator;

或通过通配符导入:

import org.apache.commons.io.comparator.*;

无论如何,您还需要确保包含它的 JAR(公共资源的某些修订版-io.jar)存在于您的类路径中。

正确导入后,您需要一个实例才能使用它。虽然您可以直接实例化它,但最好使用预定义常量之一:

Collections.sort(files, SizeFileComparator.SIZE_COMPARATOR);