题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
//
public class Main {
// 输出最后出现的八条错误记录。对相同的错误记录只记录一条 循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准
// hashSet,数组 错误记录数量满足1≤n≤100 ,每条记录长度满足 1≤len≤100
public static void main(String[] args) {
HashMap<String, Integer> hashMap = new LinkedHashMap<String, Integer>();// 作判断及存储使用 全字符串尾16+" "+行号,次数且有序输出
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String str = in.nextLine();
String[] strs = str.split(" ");// 最后一个索引的空格前进行拼接
String str0 = strs[0].substring(strs[0].lastIndexOf("\\") + 1);
String str1 = strs[1];
str0 = str0.substring(Math.max(str0.length() - 16, 0)) + " " + str1;// 尾16+" "+行号
if (!hashMap.containsKey(str0)) {
hashMap.put(str0, 1);
} else {
hashMap.put(str0, hashMap.get(str0) + 1);
}
}
// 有序输出---起始处,跳过开始
int count = 0;
for (Map.Entry<String, Integer> it : hashMap.entrySet()) {
if (hashMap.size() - count > 8) {
count++;
continue;
}
System.out.println(it.getKey() + " " + it.getValue());
}
}
}

