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

时间:2013-12-27 11:51:56

标签: java android sorting arraylist

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

当我将Collections.sort(files);应用于arraylist后,给出了结果。

(files =文件的arraylist)

/data/data/com.threepi.icheops/files/xxx/image_1_0.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_1.jpg,/data/data/com.threepi。 icheops / files / xxx / image_1_10.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_11.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_2.jpg,/ data /data/com.threepi.icheops/files/xxx/image_1_3.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_4.jpg,/data/data/com.threepi.icheops/files/xxx /image_1_5.jpg,/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/com.threepi.icheops/files/xxx/image_1_0.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_1.jpg,/data/data/com.threepi。 icheops / files / xxx / image_1_2.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_3.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_4.jpg,/ data /data/com.threepi.icheops/files/xxx/image_1_5.jpg,/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 / com。 threepi.icheops / files / xxx / image_1_10.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_11.jpg

任何想法如何做到这一点。

3 个答案:

答案 0 :(得分:1)

这是一个想法.. 实现Comparator接口并实现/使用compare()方法。 在你的比较方法中,基于“_”分割字符串...在arr [2]中你将获得0,1,2 ... 10,11 ..现在使用int i= Integer.parseInt(arr[2])将这些解析为整数..并且根据这些整数值对你的字符串进行排序......

答案 1 :(得分:0)

您可以使用CustomComparator

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

然后使用

Collections.sort(arrayList, new CustomComparator());

答案 2 :(得分:-1)

你应该尝试重命名下一个名字的文件,因为当你对一个字符串进行排序时,它与一个数字不同:

/data/data/com.threepi.icheops/files/xxx/image_1_00.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_01.jpg,/data/data/com.threepi。 icheops / files / xxx / image_1_02.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_03.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_04.jpg,/ data /data/com.threepi.icheops/files/xxx/image_1_05.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_06.jpg,/data/data/com.threepi.icheops/files/xxx /image_1_07.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_08.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_09.jpg,/ data / data / com。 threepi.icheops / files / xxx / image_1_10.jpg,/data/data/com.threepi.icheops/files/xxx/image_1_11.jpg