Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
Android 如何对数组列表中存在的时间进行排序?_Android - Fatal编程技术网

Android 如何对数组列表中存在的时间进行排序?

Android 如何对数组列表中存在的时间进行排序?,android,Android,如何根据对象中的计时对对象arraylist排序。例如,如果我的计时在arraylist中,13:00pm将是第一秒,14:00pm将是第二秒,依此类推?因此,基本上,定时为13:00PM的对象将排序到第一个位置,定时为14:00PM的对象将排序到对象数组列表中的第二个位置 以下是我的目标: arraylist 添加(新订单(AN,collectionTime,name,Integer.parseInt(数量),tid,addOn)); 采集时间值如13:00 PM和14:00 PM等 我尝试

如何根据对象中的计时对对象arraylist排序。例如,如果我的计时在arraylist中,13:00pm将是第一秒,14:00pm将是第二秒,依此类推?因此,基本上,定时为13:00PM的对象将排序到第一个位置,定时为14:00PM的对象将排序到对象数组列表中的第二个位置

以下是我的目标:

arraylist
添加(新订单(AN,collectionTime,name,Integer.parseInt(数量),tid,addOn));
采集时间值如13:00 PM和14:00 PM等

我尝试使用集合排序,但不确定如何将其与对象一起使用

List<String> l = new ArrayList<String>();
l.add("08:00");
l.add("08:32");
l.add("08:10");
l.add("13:00");
l.add("15:00");
l.add("14:00");
Collections.sort(l, new Comparator<String>() {

@Override
public int compare(String o1, String o2) {
    try {
        return new SimpleDateFormat("HH:mm a").parse(o1).compareTo(new SimpleDateFormat("HH:mm a").parse(o2));
    } catch (ParseException e) {
        return 0;
    }
    }
});
System.out.println(l);
listl=newarraylist();
l、 加上(“08:00”);
l、 加上(“08:32”);
l、 加上(“08:10”);
l、 加上(“13:00”);
l、 加上(“15:00”);
l、 加上(“14:00”);
Collections.sort(l,新的Comparator(){
@凌驾
公共整数比较(字符串o1、字符串o2){
试一试{
返回新的SimpleDataFormat(“HH:mm a”).parse(o1).compareTo(新的SimpleDataFormat(“HH:mm a”).parse(o2));
}捕获(解析异常){
返回0;
}
}
});
系统输出打印LN(l);

您可以使用匿名比较器对列表中的对象进行排序。您可以使用匿名比较器对列表进行排序,如下所示:

List<String> listOfTime = new ArrayList<String>();
l.add("10:00 pm");
l.add("4:32 am");
l.add("9:10 am");
l.add("7:00 pm");
l.add("1:00 am");
l.add("2:00 am");
Collections.sort(listOfTime, new Comparator<String>() {

    @Override
    public int compare(String o1, String o2) {
        try {
            return new SimpleDateFormat("hh:mm a").parse(o1).compareTo(new SimpleDateFormat("hh:mm a").parse(o2));
        } catch (ParseException e) {
            return 0;
        }
        }
    });
}
List listOfTime=new ArrayList();
l、 加上(“晚上10:00”);
l、 加上(上午4时32分);
l、 加上(上午9时10分);
l、 加上(下午7时);
l、 加上(“凌晨1:00”);
l、 加上(“凌晨2:00”);
Collections.sort(listOfTime,newcomparator(){
@凌驾
公共整数比较(字符串o1、字符串o2){
试一试{
返回新的SimpleDataFormat(“hh:mm a”).parse(o1).compareTo(新的SimpleDataFormat(“hh:mm a”).parse(o2));
}捕获(解析异常){
返回0;
}
}
});
}

此解决方案位于。

在Java中,您可以使用lambda表达式对
ArrayList
进行排序,如下所述。我不知道Android中是否有任何特定行为,但我的arraylist不是字符串,而是一个对象,它是OrdersArrayList。您可以使用上面的相同内容,并为您自己的对象进行修改