【问题标题】:Adding items to an array list of an array list将项目添加到数组列表的数组列表
【发布时间】:2017-11-28 03:19:55
【问题描述】:

我想知道如何将项目(从逐项读取文件输入的扫描器)添加到数组的数组列表中。现在 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.");
    }

}

【问题讨论】:

    标签: java arrays list file fileinputstream


    【解决方案1】:

    这显然行不通。您正在将一个字符串添加到一个期望 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.");
        }
    

    我希望这会有所帮助...快乐的编码!

    【讨论】:

      【解决方案2】:

      你可以做到的。

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

      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.");
              }
      
          }
      

      【讨论】:

        猜你喜欢
        • 2015-06-12
        • 2015-01-02
        • 2014-03-13
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多