使用map和list组合保存结果集,再石使用截取组装出参

import java.util.*;
public class Main{
    public static void main(String [] args){
        getErrorLog();
    }

    public static void getErrorLog(){
        Scanner scan = new Scanner(System.in);
        Map<String,Integer> map = new HashMap<>();
        List<String> list = new ArrayList<>();
        while(scan.hasNext()){
            String str = scan.nextLine();
            // 获取最后一个斜杠后的数据
            String item = str.substring(str.lastIndexOf("\\")+1);
            // 与当前统计进行比较,统计数量
            if(null == map || null == map.get(item)){
                map.put(item, 1);
                list.add(item);
            }else{
                map.put(item, map.get(item) + 1);
            }
        }
        // 输出
        int len = 0;
        if(list.size() >= 8 ){
            len = list.size() - 8;
        }
        for(int i = len; i < list.size(); i++){
            String temp = list.get(i);
            // 提取文件名称
            String [] str = temp.split(" ");
            String ret = str[0];
            // 判断文件名称是否大于16
            if(ret.length() > 16){
                ret = ret.substring(ret.length()-16);
            }
            // 组装出参
            ret = ret + " " + str[1];
            ret = ret + " " + map.get(temp);
            System.out.println(ret);
        }
    }
}