java - 我的 ArrayList 没有返回所有元素
问题描述
当我使用 System.out.println 静态方法时,下面的 Java 程序会显示 ArrayList 中的所有元素。但是,当我在方法中返回列表时,它只显示 ArrayList 中的一个元素。我会感谢一些关于做错的方向:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileProcessor {
static List<String> theList = null;
/**
*
* @return List
*/
public static List<String> processFiles() {
try {
File f = new File("/Data/fileDump");
String[] listOfFiles = f.list();
for(String eachFile: listOfFiles) {
if(eachFile.startsWith("hawk") == true) {
theList = new ArrayList<>();
theList.add(eachFile);
return theList;
}
}
} catch(Exception e) {
e.printStackTrace();
}
return theList;
}
public static void main(String[]args) {
List<String> dataList = FileProcessor.processFiles();
for(String strg: dataList) {
if(strg != null) {
System.out.println(strg);
}
}
}
}
解决方案
将您的功能替换为以下内容。
public static List<String> processFiles() {
List<String> theList = null;
try {
File f = new File("/Data/fileDump");
String[] listOfFiles = f.list();
theList = new ArrayList<>(); // initialisation moved outside of loop
for(String eachFile: listOfFiles) {
if(eachFile.startsWith("hawk") == true){
theList.add(eachFile);
}
}
return theList;// return statement moved outside of the loop
} catch(Exception e) {
e.printStackTrace();
}
return theList;
}
推荐阅读
- javascript - 如何对 Neo4J 进行高效快速的长查询:优化 Cypher 或改进 Javascript/Node.Js 构造函数?
- php - PHP.ini 思考设置与声明 strict_types 冲突
- r - 是否可以使用 actionButton 清除 ShinyApp 中显示的输出
- html - 修复独立于目录的 URL
- ruby-on-rails - Rails 6 所有 validate_presence_of 测试均失败
- python - 如何使用 Python 获取实时公共交通时间?
- java - 如何表示一个空的/无效的 java.nio.Path
- database - 如何在 mongoDB 中查找数组
- java - 将值从一个非静态方法传递到另一个从main?
- java - “应用程序启动方法 java.lang.reflect.InvocationTargetException 中的异常”