У меня есть список из 50 000 путей, и мне нужно проверить, существует ли файл для каждого из этих путей. Прямо сейчас я проверяю каждый путь независимо друг от друга следующим образом:
public static List<String> filesExist(String baseDirectory, Iterable<String> paths) throws FileNotFoundException{
File directory = new File(baseDirectory);
if(!directory.exists()){
throw new FileNotFoundException("No Directory found: " + baseDirectory );
}else{
if(!directory.isDirectory())
throw new FileNotFoundException(baseDirectory + " is not a directory!");
}
List<String> filesNotFound = new ArrayList<String>();
for (String path : paths) {
if(!new File(baseDirectory + path).isFile())
filesNotFound.add(path);
}
return filesNotFound;
}
Есть ли способ улучшить его, чтобы я не создавал 50 000 файловых объектов? Я также использую гуаву. Есть ли какая-нибудь утилита, которая может помочь мне с методом bulk exists()
?