【问题标题】:ArrayList<File> sorting by file.length() [duplicate]ArrayList<File> 按 file.length() 排序 [重复]
【发布时间】:2014-11-05 12:43:46
【问题描述】:

我想按其中包含的Files 的大小对ArrayList 进行排序。

public class ArraySorting implements Comparator<File> {

    public ArraySorting() { }

    public ArrayList<File> sort(ArrayList<File> arrayOfFiles) {
        Arrays.sort(arrayOfFiles, new ArraySorting());
        return arrayOfFiles;
    }

    public int compare( File a, File b ) {
        long aSize = a.length();
        long bSize = b.length();
        if ( aSize < bSize ) {
            return -1;
        }
        else if (aSize > bSize) {
            return 1;
        }
        else {
            return 0;
        }
    }
}

我收到一个错误:

Arrays 类型中的方法 sort(T[], Comparator) 不适用于参数 (ArrayList, ArraySorting)。

【问题讨论】:

  • 你在使用 Collections.sort(...) 吗?
  • ArrayList 是一个列表,而不是一个数组!使用Collections.sort(arrayOfFiles, new ArraySorting())
  • 您是否尝试过用谷歌搜索您的错误? stackoverflow.com/questions/12889314/…
  • 仅供参考,您可以return a.length() - b.length();

标签: java sorting arraylist


【解决方案1】:

Arrays.sort 需要一个数组。使用Collections.sortList 进行排序。

public ArrayList<File> sort(ArrayList<File> arrayOfFiles) 
{
    Collections.sort(arrayOfFiles, new ArraySorting());
    return arrayOfFiles;
}

【讨论】:

  • 谢谢,对我有帮助。
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 2013-06-14
  • 2021-10-28
  • 1970-01-01
  • 2015-11-29
相关资源
最近更新 更多