从两个阵列寻找共同文件 [英] Finding common Files from two arrays
问题描述
我想从两个数组找到共同的名字的文件。
我在两个不同的阵列挽救了两个不同的文件夹中的文件名。
现在我创建一个公共文件阵列将具有共同的名字的文件。
1名:阵列contaning文件名文件夹1
2名:阵列contaning文件名文件夹中2
进口的java.io.File;
进口的java.util。*;公共类ListFiles1
{ 公共静态无效的主要(字串[] args)
{ 字符串PATH1 =C:\\\\; 字符串PATH2 =D:\\\\; 文件文件夹1 =新的文件(路径1);
文件资料夹2 =新的文件(路径2); 的String [] F1 = folder1.list(); 文件[] = listOfFiles1 folder1.listFiles();
文件[] = listOfFiles2 folder2.listFiles(); ArrayList的<串GT; fileNames1 =新的ArrayList<>();
ArrayList的<串GT; fileNames2 =新的ArrayList<>(); 的for(int i = 0; I< listOfFiles1.length;我++)
{ 如果(listOfFiles1 [I] .isFile())
{
fileNames1.add(listOfFiles1 [I] .getName());
的System.out.println(F1 [I] +是一个文件);
} } 对于(INT J = 0; J< listOfFiles2.length; J ++)
{ 如果(listOfFiles2 [J] .isFile())
{
fileNames2.add(listOfFiles2 [J] .getName());
}
} ArrayList的<串GT; commonfiles =新的ArrayList<>();
的for(int i = 0; I< listOfFiles1.length;我++)
{
对于(INT J = 0; I< listOfFiles2.length; J ++)
{
串tempfilename1;
串tempfilename2;
tempfilename1 = fileNames1 [I]
tempfilename2 = fileNames2 [J]。
如果(tempfilename1.equals(tempfilename2))
{
commonfiles.add(tempfilename1);
}
}
}
}
}
我写这篇code,但编译器为这个错误:
Main.java:52:错误:阵列必需的,但ArrayList的<串GT;发现
tempfilename1 = fileNames1 [I]
^
Main.java:53:错误:阵列必需的,但ArrayList的<串GT;发现
tempfilename2 = fileNames2 [J]。
^
P.S:我是新手...
块引用>解决方案如果
filenames1
是阵列
你不能使用的ArrayList
方法的get(int i)以
。您需要访问
阵列
使用元素arrayName中的[elementIndex]
。在您的情况:
tempfilename1 = filenames1 [I]
tempfilename2 = fileNames2 [J]。I am trying to find common name files from two arrays. I have saved file names of two different folders in two different arrays.
Now i am creating a common file array which will have files which have common name.
filenames 1 : Array contaning names of file in folder 1.
filename 2 : Array contaning names of file in folder 2.
import java.io.File; import java.util.*; public class ListFiles1 { public static void main(String[] args) { String path1 = "C:\\"; String path2 = "D:\\"; File folder1 = new File(path1); File folder2 = new File(path2); String[] f1=folder1.list(); File[] listOfFiles1 = folder1.listFiles(); File[] listOfFiles2 = folder2.listFiles(); ArrayList<String> fileNames1 = new ArrayList<>(); ArrayList<String> fileNames2 = new ArrayList<>(); for (int i = 0; i < listOfFiles1.length; i++) { if (listOfFiles1[i].isFile()) { fileNames1.add(listOfFiles1[i].getName()); System.out.println(f1[i] + " is a file"); } } for (int j = 0; j < listOfFiles2.length; j++) { if (listOfFiles2[j].isFile()) { fileNames2.add(listOfFiles2[j].getName()); } } ArrayList<String> commonfiles = new ArrayList<>(); for (int i = 0; i < listOfFiles1.length; i++) { for (int j = 0; i < listOfFiles2.length; j++) { String tempfilename1; String tempfilename2; tempfilename1=fileNames1[i]; tempfilename2 = fileNames2[j]; if(tempfilename1.equals(tempfilename2)) { commonfiles.add(tempfilename1); } } } } }
I wrote this code but the compiler gives this error:
Main.java:52: error: array required, but ArrayList<String> found tempfilename1=fileNames1[i]; ^ Main.java:53: error: array required, but ArrayList<String> found tempfilename2 = fileNames2[j]; ^
P.S : I am a Newbie...
解决方案If
filenames1
is anarray
you cannot useArrayList
methodget(int i)
.You need to access the
array
elements by usingarrayName[elementIndex]
.In your case:
tempfilename1=filenames1[i]; tempfilename2=fileNames2[j];
这篇关于从两个阵列寻找共同文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!