从两个阵列寻找共同文件 [英] Finding common Files from two arrays

查看:121
本文介绍了从两个阵列寻找共同文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从两个数组找到共同的名字的文件。
我在两个不同的阵列挽救了两个不同的文件夹中的文件名。

现在我创建一个公共文件阵列将具有共同的名字的文件。

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 an array you cannot use ArrayList method get(int i).

You need to access the array elements by using arrayName[elementIndex].

In your case:

tempfilename1=filenames1[i];
tempfilename2=fileNames2[j];

这篇关于从两个阵列寻找共同文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆