日志排序

标题:日志排序 | 时间限制:1秒 | 内存限制:262144K | 
运维工程师采集到某产品现网运行一天产生的日志N条,现需根据日志时间按时间先后顺序对日志进行排序。
日志时间格式为:
H:M:S.N
H表示小时(0-23),M表示分钟(0-59),S表示秒(0-59),N表示毫秒(0-999)
时间可能并没有补齐,也就是说: 01:01:01.001,也可能表示为1:1:1.1

import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            int num = Integer.parseInt(sc.nextLine().trim());
            LinkedList<String> list = new LinkedList<>();
            for (int i = 0; i < num; i++) {
                list.add(sc.nextLine().trim());
            }
            list.sort(Comparator.comparingLong(Main::calc));
            
            list.forEach(System.out::println);
        }
    }

    private static long calc(String str) {
        String[] split = str.split(":");
        String[] split1 = split[2].split("\\.");
        int hour = Integer.parseInt(split[0]) * 60 * 60 * 1000;
        int minute = Integer.parseInt(split[1]) * 60 * 1000;
        int second = Integer.parseInt(split1[0]) * 1000;
        int nnn = Integer.parseInt(split1[1]);
        return hour + minute + second + nnn;
    }

}




全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务