如何判断ArrayList中所有索引对应文件路径指向的文件均不存在
解决方案
核心逻辑
- 初始化布尔变量默认值为
true,默认假设所有路径对应的文件均不存在 - 遍历所有路径,只要检测到任意一个文件存在,就将布尔值修改为
false,可提前终止循环减少不必要的遍历 - 遍历结束后得到的布尔值就符合判定规则:所有文件均不存在时为
true,存在至少一个文件时为false
完整实现代码
// 初始化布尔值,默认所有文件都不存在 boolean allNotExists = true; for (int i = 0; i < logopaths.size(); i++) { String s = logopaths.get(i); File file = new File(s); if (file.exists()) { // 只要找到一个存在的文件,就修改标记为false allNotExists = false; // 不需要后续遍历的话可以直接跳出循环 break; // 如果存在文件时需要执行对应操作,也可以在这里写对应逻辑 } } // 遍历结束后即可根据allNotExists的值做后续处理 if (allNotExists) { // 所有文件都不存在时的逻辑 } else { // 存在至少一个文件时的逻辑 }
原代码问题说明
你之前的实现是在循环内部对单个文件的存在性做判断,每碰到一个不存在的文件就触发对应逻辑,没有做全局状态的统一标记,所以才会出现单个文件不存在就返回true的问题。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

