题解 | 简单错误记录
简单错误记录
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()); }); } }