繁体   English   中英

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

[英]Accessing array list elements from another class

我有一个具有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);

    }    
}

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

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

  1. 在第二类的方法中使用数组。
  2. 将数组用作第二个类中的成员。
  3. 将数组用作第二个类中的静态成员。

对于1,您可以简单地将数组传递给方法。 对于2,您可以将数组传递给构造函数,并初始化类中的成员变量。 对于3,您可以设置诸如SecondClass.fileList = myFileList;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM