简述
该题目为华为OD面试第四轮,一位技术主管视频面试时,最后即兴出的一道算法题;当时是使用电脑端的zoom进行视频面试,算法题可以使用电脑的IDE,需要进行屏幕共享;难度中下,更倾向于考验临场发挥能力。
题目描述
遍历某个文件夹下的所有的文件,获取所有的文件名,根据文件后缀分类;并对分类与 文件名都进行任意一种排序;
解题参考
@Test
public void classifyFiles() {
File originFile = new File("e:\\");
List<String> fileNames = getFileNames(new ArrayList<>(), originFile);
Collections.sort(fileNames);
//直接使用TreeMap,自动排序
Map<String, List<String>> map = new TreeMap<>();
fileNames.forEach(fileName -> {
String ex = fileName.substring(fileName.lastIndexOf(".") + 1);
if (!map.keySet().contains(ex)) {
map.put(ex, new ArrayList<>());
}
map.get(ex).add(fileName);
});
System.