Задача:
Реализовать логику метода getFileTree, который должен в директории root найти список всех файлов включая вложенные.
Используй очередь, рекурсию не используй.
Верни список всех путей к найденным файлам, путь к директориям возвращать не надо.
Путь должен быть абсолютный.
Требования:
-
Метод getFileTree должен принимать аргументом String root, по которому нужно найти все вложенные файлы.
-
Метод getFileTree должен возвращать список строк.
-
Нужно реализовать метод getFileTree: найти все файлы по указанному пути и добавить их в список.
-
Метод getFileTree должен быть вызван только 1 раз (рекурсию не использовать).
Решение:
import java.io.File;
import java.io.IOException;
import java.util.*;
public class Solution {
public static List<String> getFileTree(String root) throws IOException {
File patch = new File(root);
Queue<File> filesAll = new PriorityQueue<>();
filesAll.add(patch);
List<String> result = new ArrayList<>();
while(!filesAll.isEmpty()) {
File fis = filesAll.poll();
for(File fii : fis.listFiles()) {
if(fii.isDirectory()) {
filesAll.add(fii);
} else {
result.add(fii.getPath());
}}}
return result;
}
public static void main(String[] args) throws IOException{
}}