基于start_time对文件的内容进行排序

时间:2016-01-20 11:08:41

标签: java date arraylist

我有一个特定的文本文件,其中包含每个相应字段的数据,即应用程序ID,用户,类型,队列和start_time。我希望输出在start_time上排序,并显示所有运行超过24小时的application_ids。

示例如下:

ApplicationID   User    Type       Queue    start_time
appln_id_1     abcdef   MAPREDUCE   abc     Wed Jan20 2015:59:06+0550 2016
appln_id_2     deghif   TEZ         def     Tue Jan19 2015:08:16+0550 2016
appln_id_3     deghdf   TEZ         def     Sun Jan17 2015:04:02+0550 2016
appln_id_4     dghkif   MAPREDUCE   ghi     Mon Jan18 2015:15:26+0550 2016.

我希望结果在start_times上排序。

排序后,结果如下:

ApplicationID   User    Type       Queue    start_time
appln_id_3     deghdf   TEZ         def     Sun Jan17 2015:04:02+0550 2016
appln_id_4     dghkif   MAPREDUCE   ghi     Mon Jan18 2015:15:26+0550 2016
appln_id_2     deghif   TEZ         def     Tue Jan19 2015:08:16+0550 2016
appln_id_1     abcdef   MAPREDUCE   abc     Wed Jan20 2015:59:06+0550 2016.

我可以对start_times进行排序并将其放入列表中。但是如何显示上面的输出,作为排序后每个列更改的输出。

我希望输出在start_time上排序,并显示所有运行超过24小时的application_ids。 这是我的代码:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
DateFormat targetFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = sdf.parse(start_time);
String formattedDate = targetFormat.format(date);
System.out.println("date is"+formattedDate);
list1.add(formattedDate);
System.out.println("list is"+list1);
Collections.sort(list1);
System.out.println("sorted list"+list1);

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以创建一个表示文件中记录的类。解析记录并创建记录列表。通过将自定义比较器传递给Collections.sort(列表,比较器),为自定义排序logic.Sort列表编写自己的比较器。