【问题标题】:Accessing array list elements from another class从另一个类访问数组列表元素
【发布时间】:2014-08-05 17:24:07
【问题描述】:

我有一个主类,它有一个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);

    }    
}

【问题讨论】:

    标签: java list arraylist


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-07-19
        • 1970-01-01
        • 2018-09-15
        • 1970-01-01
        • 2013-03-20
        • 2018-07-13
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        相关资源
        最近更新 更多