利用list和map集合:
list存放键(键包括文件名+行码),list的作用是存放所有键,不包括此键,新建map,包括此键,更新map。
map存放键(同list的键),值(出现次数),每次新建或迭代更新键值,并放入list。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
List<String> list = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
while(sc.hasNextLine()){
String[] strs = sc.nextLine().split(" ");
String[] fdir = strs[0].split("\\\\");
String fname = fdir[fdir.length-1];
if(fname.length()>16){
fname = fname.substring(fname.length()-16);
}
if(list.contains(fname+" "+strs[1])){
map.put(fname+" "+strs[1],map.get(fname+" "+strs[1]) + 1);
}else{
map.put(fname+" "+strs[1],1);
list.add(fname+" "+strs[1]);
}
}
int start = list.size()-8;
for(int j =0;j<list.size();j++,start--){
if(start<=0){
System.out.println(list.get(j)+" "+map.get(list.get(j)));
}
}
}
}