从另一个类访问数组列表元素

时间:2014-08-05 17:24:07

标签: java list arraylist

我有一个主要类ArrayList。这个ArrayList有一组通过迭代存储的值。我需要在另一个类中使用此ArrayList(fileList& directoryList)值。我怎样才能做到这一点? 我不想将ArrayList移到另一个班级。

package com.filehandler;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileFinder {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        int directoryCount = 0;

        /* Declare Lists for Files & Directories */
        List<String> fileList = new ArrayList<String>();
        List<String> directoryList = new ArrayList<String>();

        // enter code here

        /* Set file location */

        File myFolder = new File("O:\\The Ultimate Book Shelf\\Technical");
        File[] myFileList = myFolder.listFiles();

        /* Iterate the folder to get the details of Files & Folders */

        for (int count = 0; count < myFileList.length; count++) {
            if (myFileList[count].isFile()) {
                // System.out.println("File " + myFileList[count].getName());
                fileList.add(myFileList[count].getName());

            } else if (myFileList[count].isDirectory()) {
                directoryCount++;
                // System.out.println("Directory " +
                // myFileList[count].getName());
                directoryList.add(myFileList[count].getName());
            } else {
                System.out
                        .println("There are no files or directories in the mentioned path. Please verify the folder location.");
            }
        }
        System.out.println("Total Files : "
                + (myFileList.length - directoryCount));
        System.out.println("Total Directories :" + directoryCount);
        System.out.println(fileList);
        System.out.println(directoryList);

    }    
}

2 个答案:

答案 0 :(得分:0)

您的其他类可以在自己的构造函数中接受两个ArrayLists,也可以作为特定方法的参数,具体取决于您尝试执行的操作。通过将它们作为参数传递,您实际上会将引用传递给您在main函数中创建的ArrayLists,因此另一个类将能够读取其中的值。

答案 1 :(得分:0)

这取决于如何在第二类中使用该数组。您有以下选择。

  1. 在第二个类的方法中使用数组。
  2. 将数组用作第二个类中的成员。
  3. 在第二个类中使用数组作为静态成员。
  4. 对于1,您只需将数组传递给方法即可。 对于2,您可以将数组传递给构造函数并初始化类中的成员变量。 对于3,您可以设置为SecondClass.fileList = myFileList;