如何在Java列表中对最早的时间戳进行排序?

chandu2798
package collectionCollections;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.concurrent.SynchronousQueue;

public class TestCollections {

 public static void main(String[] args) {

  String a = "9:50 PM,12:25 PM,3:55 PM,10:15 PM,1:15 PM";
  ArrayList al2 = new ArrayList();
  ArrayList al3 = new ArrayList();
  String arg[] = a.split(",");
  // System.out.println(arg);
  // Collections.sort(list);
  List < String > al = new ArrayList < String > ();
  al = Arrays.asList(arg);
  for (String s: al) {
   System.out.println(s);
   al2.add(s.substring(0, 5).replace(':', '.'));
  }
  System.out.println(al2);
  Iterator li = al2.iterator();
  while (li.hasNext()) {
   String s = (String) li.next();
   float no = Float.parseFloat(s);
   al3.add(no);
  }
  Collections.sort(al3);
  int add = 0;
  float ff = 0;
  ListIterator lit = al3.listIterator();
  while (lit.hasNext()) {

   float f = (Float) lit.next();
   int intno = (int) f;
   if (intno == 12) {
    add = intno;
    ff = f - add;
    System.out.println(ff);
    lit.remove();
   }
  }
  al3.add(0, add + ff);
  System.out.println(al3);
 }
}

(`我正在尝试对以下数组列表进行排序:

my Timestamps = [12:40 PM, 4:00 PM, 7:20 PM, 10:40 PM, 12:00 PM, 3:25 PM, 6:50 PM, 10:15 PM, 6:35 PM, 9:50 PM, 12:20 PM, 3:45 PM, 7:15 PM, 10:40 PM, 11:45 AM, 3:10 PM, 6:35 PM, 10:25 PM, 12:50 PM, 4:10 PM, 7:30 PM, 10:40 PM]

预期结果将在最早的索引中显示最早的11:45 AM。

我曾尝试将上述列表转换为整数,并且在特定时间(12:35 PM)有唯一时间(AM / PM)时,我能够对它进行排序,但是在特定时间(12:35 PM)有多个时间戳, 12:05 PM)我无法排序。

莫莫

下面的代码对您来说是最简单的解决方案,与您的代码几乎没有什么变化:

  • 在排序之前将12:mm AM / PM转换为00:mm AM / PM
  • 将hh:mm AM转换为hh.mm,并将hh:mm转换为(hh + 12).mm
  • 排序列表
  • 将hh.mm转换为hh:mm AM / PM

    package collectionCollections;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;
    import java.util.concurrent.SynchronousQueue;
    
    public class TestCollections {
    
    public static void main(String[] args) {
    
        //String a = "9:50 PM,12:25 PM,3:55 PM,10:15 PM,1:15 PM";
        String a = "9:50 PM,12:25 PM,3:55 PM,10:15 PM,1:15 PM,1:00 AM, 12:25 AM, 10:13 AM";
        List<String> al2 = new ArrayList<>();
        List<Float> al3 = new ArrayList<>();
        List<String> al4 = new ArrayList<>(); // list of final results to display
        String arg[] = a.split(",");
        // System.out.println(arg);
        // Collections.sort(list);
        List<String> al = new ArrayList<String>();
        al = Arrays.asList(arg);
        for (String s : al) {
            System.out.println(s);
            s  = s.trim(); // remove leading and trailing spaces, otherwise the conversion to float will fail
            s = s.replace("12:", "00:"); // do not forget 12:00 is like 00:00 and 12:00 AM/PM is least than 1:00 AM/PM
            String[] t = s.split(" ");
            String ampm = t[1]; // extract AM/PM
            System.out.println("ampm "+ ampm );
            if( ampm.toUpperCase().equals("PM")) {
                String h = t[0].split(":")[0]; // extract hours
                int hh = 12 + Integer.parseInt(h); // add 12 for PM
                t[0] = t[0].replace(h+":", hh+":");
            }
    
            al2.add(t[0].replace(":", "."));
        }
        System.out.println(al2);
        Iterator li = al2.iterator();
        while (li.hasNext()) {
            String s = (String) li.next();
            float no = Float.parseFloat(s);
            System.out.println(" s -> no : "+ s +" -> "+ no);
            al3.add(no);
        }
    
        Collections.sort(al3);
        ListIterator lit = al3.listIterator();
        while (lit.hasNext()) {
    
            float f = (Float) lit.next();
            int intno = (int) f;
            if(intno < 12 ) {
                int hour12 = intno == 0 ? 12 : intno; // replace 00:xx am by 12:xx am
                al4.add(hour12 +":"+ ((int)((f-intno)*100)) +" AM");
            }
            else {
                al4.add((intno-12)+":"+ ((int)((f-intno)*100)) +" PM");
            }
        }
        System.out.println(al4);
    }
    }
    

与清单

String a = "9:50 PM,12:25 PM,3:55 PM,10:15 PM,1:15 PM,1:00 AM, 12:25 AM, 10:13 AM";

结果是:

[12:25 AM, 1:0 AM, 10:13 AM, 0:25 PM, 1:14 PM, 3:55 PM, 9:50 PM, 10:14 PM]

以后的编辑中将提供更有效的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在名称中带有ddmmyy时间戳的Bash中对文件进行排序

来自分类Dev

如何在Powershell中按时间戳对文本数据进行排序

来自分类Dev

如何在Java中对数组类型列表进行排序?

来自分类Dev

按时间戳对列表中的条目进行排序,这些时间戳包含在python中的条目名称中

来自分类Dev

在查询中对嵌套的时间戳进行排序

来自分类Dev

如何在字典中对列表进行排序

来自分类Dev

如何在Linux终端中按时间顺序对列表进行排序?

来自分类常见问题

Python(Django)如何通过时间戳属性对对象列表进行排序

来自分类Dev

Python(Django)如何通过时间戳属性对对象列表进行排序

来自分类Dev

在Python中对列表进行排序的快速方法,以使它们的相应索引处于相似的时间戳?

来自分类Dev

如何对字典中的日期和时间列表进行排序?

来自分类Dev

如何在multipal左联接中使用multipal group by并按时间戳对它们进行排序?

来自分类常见问题

如何在Java中对ArrayList进行排序

来自分类Dev

如何在JAVA中对JSONArray进行排序

来自分类Dev

如何在Java中对Arraylist进行排序

来自分类Dev

如何在Java中对书籍进行排序

来自分类Dev

如何在 Java 中对 HashMap 进行排序?

来自分类Dev

如何在R中对列表列表进行排序?

来自分类Dev

如何在java中给出时间戳值作为参数?

来自分类Dev

如何从最早的日期对数据进行排序

来自分类Dev

如何根据时间戳对grep命令中显示的文件名进行排序?

来自分类Dev

如何在 Angular 中对列表中的项目进行排序?

来自分类Dev

如何在Spark Java中根据其值对列表进行排序?

来自分类Dev

如何按名称/时间戳对多维数组进行排序?

来自分类Dev

如何按时间戳对 javascript 对象进行反向排序

来自分类Dev

如何在Java中比较对象并对列表进行排序

来自分类Dev

根据python中的时间戳对字典进行排序

来自分类Dev

需要帮助在Swift中按时间戳对结构进行排序

来自分类Dev

在Eloquent中对时间戳进行排序

Related 相关文章

  1. 1

    如何在名称中带有ddmmyy时间戳的Bash中对文件进行排序

  2. 2

    如何在Powershell中按时间戳对文本数据进行排序

  3. 3

    如何在Java中对数组类型列表进行排序?

  4. 4

    按时间戳对列表中的条目进行排序,这些时间戳包含在python中的条目名称中

  5. 5

    在查询中对嵌套的时间戳进行排序

  6. 6

    如何在字典中对列表进行排序

  7. 7

    如何在Linux终端中按时间顺序对列表进行排序?

  8. 8

    Python(Django)如何通过时间戳属性对对象列表进行排序

  9. 9

    Python(Django)如何通过时间戳属性对对象列表进行排序

  10. 10

    在Python中对列表进行排序的快速方法,以使它们的相应索引处于相似的时间戳?

  11. 11

    如何对字典中的日期和时间列表进行排序?

  12. 12

    如何在multipal左联接中使用multipal group by并按时间戳对它们进行排序?

  13. 13

    如何在Java中对ArrayList进行排序

  14. 14

    如何在JAVA中对JSONArray进行排序

  15. 15

    如何在Java中对Arraylist进行排序

  16. 16

    如何在Java中对书籍进行排序

  17. 17

    如何在 Java 中对 HashMap 进行排序?

  18. 18

    如何在R中对列表列表进行排序?

  19. 19

    如何在java中给出时间戳值作为参数?

  20. 20

    如何从最早的日期对数据进行排序

  21. 21

    如何根据时间戳对grep命令中显示的文件名进行排序?

  22. 22

    如何在 Angular 中对列表中的项目进行排序?

  23. 23

    如何在Spark Java中根据其值对列表进行排序?

  24. 24

    如何按名称/时间戳对多维数组进行排序?

  25. 25

    如何按时间戳对 javascript 对象进行反向排序

  26. 26

    如何在Java中比较对象并对列表进行排序

  27. 27

    根据python中的时间戳对字典进行排序

  28. 28

    需要帮助在Swift中按时间戳对结构进行排序

  29. 29

    在Eloquent中对时间戳进行排序

热门标签

归档