【问题标题】:How to sort custom object in android如何在android中对自定义对象进行排序
【发布时间】:2013-12-27 11:51:55
【问题描述】:

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

当我将Collections.sort(files); 应用于数组列表时,给出了以下结果。

(文件 = 文件数组列表)

/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.iceops/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.iceops/files/xxx/image_1_11.jpg

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

【问题讨论】:

标签: java android sorting arraylist


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你可以使用 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());
    

    【讨论】:

      【解决方案3】:

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

      /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.iceops/files/xxx/image_1_11.jpg

      【讨论】:

      • 如果他是按字母顺序排序的,这是一个解释是什么得到了这个结果。显然还有其他选择可以解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 2010-10-22
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多