JAVA我应该使用列表还是数组

JAVA我应该使用列表还是数组,java,arrays,list,compare,directory,Java,Arrays,List,Compare,Directory,我正在使用Java7,但如果认为值得的话,可以升级到8 我正在创建一个程序来比较两个文件夹中的文件 我正在使用Files.newDirectoryStream来提取文件数据,尽管我仍然需要解决如何递归地进行提取,但我相信这应该不会太困难 至此,我将进行比较,然后添加缺少的项目,使它们同步。 这意味着我需要存储: 1) 名称, 2) 路径 因此,我需要用一些东西来做这件事。我知道我可以用数组[]来完成。但这是最好的方法,还是列表更有效 我想最大的文件夹可以容纳200个文件 提前感谢。您可以使用Ar

我正在使用Java7,但如果认为值得的话,可以升级到8

我正在创建一个程序来比较两个文件夹中的文件

我正在使用Files.newDirectoryStream来提取文件数据,尽管我仍然需要解决如何递归地进行提取,但我相信这应该不会太困难

至此,我将进行比较,然后添加缺少的项目,使它们同步。
这意味着我需要存储:

1) 名称, 2) 路径

因此,我需要用一些东西来做这件事。我知道我可以用数组[]来完成。但这是最好的方法,还是列表更有效

我想最大的文件夹可以容纳200个文件


提前感谢。

您可以使用
ArrayList
,它可以被看作是“普通数组的包装器”(为了简单和理解)。由于列表中的每个元素的类型都是
File
,因此您已经可以访问文件的路径和名称,不需要单独存储它们

当然,与使用简单数组相比,ArrayList的开销要大一些,但是如果您预计最大的开销是200个文件,那么这并不是什么大问题,也没什么好担心的。除非您在计算器上运行程序;)

如果可以,应首先获取当前工作目录中的文件数量,并将该数量用作列表的初始大小:

int numberOfFiles = fetchFileCount(directory);
ArrayList<File> currentFiles = new ArrayList<>(numberOfFiles);
int numberOfFiles=fetchFileCount(目录);
ArrayList currentFiles=新的ArrayList(numberOfFiles);

我只想使用一个列表,这可能会更简单。可能重复我使用的数组的路径类型,但我将研究使用文件来获取文件名和路径。谢谢