将项目添加到数组列表的数组列表

Adding items to an array list of an array list

我想知道如何将项(从逐项读取文件输入的扫描仪)添加到数组的数组列表中。现在 Eclipse 告诉我我的 .add 不起作用,我假设这是因为数组的数组列表。请帮忙!

public static void readInputFile(String fileName,
                                 ArrayList<ArrayList<String> > fileByLine) throws IOException {
    try { 
        FileInputStream fileInput = new FileInputStream(fileName);
        Scanner fileIn = new Scanner(new FileReader(fileName));
        String fileWord = fileIn.next();
        while (fileIn.hasNext()) {
            fileByLine.add(fileWord);
            fileWord = fileIn.next();
        }
    }
    catch (IOException ex) {
        System.out.println("Error reading file.");
    }

}

你可以的。

首先向父列表添加一个新列表,然后添加项目

public static void readInputFile(String fileName,
            ArrayList<ArrayList<String>> fileByLine) throws IOException {
        try {
            FileInputStream fileInput = new FileInputStream(fileName);
            Scanner fileIn = new Scanner(new FileReader(fileName));
            String fileWord = fileIn.next();

            ArrayList<String> list = new ArrayList<>(); //list of items
            while (fileIn.hasNext()) {
                fileWord = fileIn.next();
                list.add(fileWord); //adding item to list

            }
            fileByLine.add(list); //add list with list to father list
        } catch (IOException ex) {
            System.out.println("Error reading file.");
        }

    }

这显然行不通。您要将字符串添加到需要 ArrayList 元素(而非字符串元素)的 ArrayList。最好你这样做:

try { 
    FileInputStream fileInput = new FileInputStream(fileName);
    Scanner fileIn = new Scanner(new FileReader(fileName));
    String fileWord = fileIn.next();

    ArrayList<String> newSubList = new ArrayList<>();
        while (fileIn.hasNext()){
            fileWord = fileIn.next();

            //Adds to this specific Arraylist:
            newSubList.add(fileWord);
        }

        //Adds to the outermost ArrayList after loop
        fileByLine.add(newSubList);
    } 

catch (IOException ex) {
        System.out.println("Error reading file.");
    }

希望对您有所帮助...编码愉快!