题解 | #简单错误记录#

题目感觉是这个比较好:记录日志最新的8条,如果重复出现记录出现次数加一,取所有日志中最新的8条差不多

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        LinkedHashMap<String, Integer> map = new LinkedHashMap();
        List<String> rem = new ArrayList();
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String line = in.nextLine();
            if (line.contains(" ")) {
                // 处理数据
                String[] data = line.split(" ");
                String value = data[0];
                if (value.length() > 0) {
                    int index = value.lastIndexOf("\\");
                    String result = value.substring(index + 1);
                    if (result.length() >= 16) {
                        result = result.substring(result.length() - 16);
                    }
                    result = result + "/" + data[1];
                    Integer s = map.get(result);
                    if (!rem.contains(result)) {
                        if (null != s && s > 0) {
                            map.put(result, map.get(result) + 1);
                        } else {
                            // 移除第八个数据
                            if (map.size() == 8) {
                                String key = map.entrySet().stream().findFirst().get().getKey();
                                rem.add(key);
                                map.remove(key);
                            }
                            map.put(result, 1);
                        }
                    }
                }

            }
        }
        map.forEach((key, value) -> {
            String s = key.replace("/", " ") + " " + value;
            System.out.println(s);
        });
    }
}
全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务