题解 | 简单错误记录
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
List<String> fileNameLineNoList = new ArrayList<String>();
while (in.hasNextLine()) { // 注意 while 处理多个 case
String fileNameLineNo = in.nextLine();
if (!fileNameLineNoList.contains(fileNameLineNo)) {
fileNameLineNoList.add(fileNameLineNo);
}
continue;
}
if (fileNameLineNoList.isEmpty()) {
return;
}
Map<String, Integer> map = new LinkedHashMap<>();
fileNameLineNoList.forEach(f-> {
String[] fileNameLineNoArr = f.split(" ");
String directoryFileName = fileNameLineNoArr[0];
String fileName = directoryFileName.substring(directoryFileName.lastIndexOf("\\") + 1);
String lineNo = fileNameLineNoArr[1];
if (fileName.length() > 16) {
fileName = fileName.substring(fileName.length() - 16);
}
String fileNameLineNoNew = fileName + " " + lineNo;
if (map.containsKey(fileNameLineNoNew)) {
int count = map.get(fileNameLineNoNew).intValue();
map.put(fileNameLineNoNew, count + 1);
} else {
map.put(fileNameLineNoNew, 1);
}
});
final int count = 0;
int mapSize = map.keySet().size();
int start = mapSize > 8 ? mapSize - 8 : 0;
map.entrySet().stream().skip(start).limit(8).forEach(entry-> {
System.out.println(entry.getKey() + " " + entry.getValue());
});
}
}

