Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中对自定义对象进行排序_Java_Android_Sorting_Arraylist - Fatal编程技术网

Java 如何在android中对自定义对象进行排序

Java 如何在android中对自定义对象进行排序,java,android,sorting,arraylist,Java,Android,Sorting,Arraylist,我有一个文件列表。我想根据文件名对所有文件进行排序 当我应用Collections.sort(文件)时到arraylist,给出了以下结果 (文件=文件的数组列表) /data/data/com.threepi.icheops/files/xxx/image\u 1\u 0.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 1.jpg,/data/data/com.threepi.icheops/files/xxx/data/com

我有一个文件列表。我想根据文件名对所有文件进行排序

当我应用
Collections.sort(文件)时到arraylist,给出了以下结果

(文件=文件的数组列表)

/data/data/com.threepi.icheops/files/xxx/image\u 1\u 0.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 1.jpg,/data/data/com.threepi.icheops/files/xxx/data/com.threepi.icheops/files/xxx/image\u 1\u 11.jpg,/data/data/data/data/com.threepi.icheops/files/files/xxx/image\u 1\u 2.jpg,/data/data/data/data/com.icheops/jpu 1,,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 4.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 5.jpg,/data/data/data/com.threepi.icheops/files/xxx/data/com.threepi.icheops/files/xxx/image\u 1\u 7.jpg,/data/data/data/data/data/com.threepi.icheops/files/files/xxx/image\u 1\u 8.jpg,/data/data/data/index/ichu/index.com/jpg

我希望这些文件是这样的

/data/data/com.threepi.icheops/files/xxx/image\u 1\u 0.jpg、/data/data/com.threepi.icheops/files/xxx/image\u 1\u 1.jpg、/data/data/com.threepi.icheops/files/xxx/data/com.threepi.icheops/files/xxx/image\u 1\u 3.jpg、/data/data/data/data/com.threepi.icheops/files/files/xxx/image\u 1\u 4.jpg、/data/data/data/data/data/com.threepi.icheops/jpu.5,/data/data/com.threepi.icheops/files/xxx/image_1_6.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_7.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_8.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_9.jpg,/data/data/data/data/com.threepi.icheops/files/files/xxx/image_1_1_10.jpg,/data/data/doc/ichu/index.jpg


您可以使用CustomComparator

public class CustomComparator implements Comparator<MyObject> {
    @Override
    public int compare(MyObject o1, MyObject o2) {
        return o1.getStartDate().compareTo(o2.getStartDate());
    }
}

您应该尝试重命名文件,并输入下一个名称,因为当您对字符串排序时,它与数字不同:

/data/data/com.threepi.icheops/files/xxx/image\u 1\u 00.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 01.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 02.jpg,/data/data/com.threepi.icheops/files/data/image\u 1\u 03.jpg,/data/data/data/data/com.threepi.icheops/files/files/xxx/image\u 1\u 1\u 04.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 06.jpg,/data/data/com.threepi.icheops/files/xxx/image\u 1\u 07.jpg,/data/data/data/com.threepi.icheops/files/xxx/image\u 1\u 08.jpg,/data/data/data/com.threepi.icheops/files/xxx/image\u 1\u 10.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_11.jpg

以下是一个想法。。
实现Comparator接口并实现/使用compare()方法。
在您的比较方法中,根据“389;”分割字符串。。。在arr[2]中,您将得到0,1,2。。。10,11.. 现在,使用
inti=Integer.parseInt(arr[2])
将它们解析为整数。。并根据这些整数值对字符串进行排序…

实现Comparator接口并实现/使用compare()方法。。将排序逻辑放入compare()方法中。。这是因为名字是按字母顺序排列的。。。所以10比2来得早…这就像是一个字母排序,试试这个,如果他在做字母排序,这是一个解释是什么得到了这个结果。显然,解决这个问题还有其他选择。
Collections.sort(arrayList, new CustomComparator());