【问题标题】:How to store the return list so I can use it in another class?如何存储退货清单以便我可以在另一个班级使用它?
【发布时间】:2018-04-01 06:44:27
【问题描述】:

我创建了一个读取和存储 csv 文件的方法,其中 sn-p 读取 CSV 文件,然后将其放入 list<String>

Scanner inputStream = new Scanner(file);
while (inputStream.hasNext()) {
         List.add(inputStream.nextLine());
}
inputStream.close();

如何存储当前的List,以便将其用于同一类中的另一个方法?

【问题讨论】:

    标签: java list class java.util.scanner storage


    【解决方案1】:

    根据您的要求使用集合中的任何列表。

    Arraylist 更适合存储和访问数据。 LinkedList 更适合处理数据。所以明智地选择。这里我要使用ArrayList

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Scanner;
    
    public class ParseCSVFile {
    
        public static void main(String[] args) {
    
            // Get the csv file path
            String fileName = "yourCsvFile.csv";
    
            // method returns list of strings in csv file
            List<List<String>> lines = parseCsvFile(fileName);
    
            // Method to print the contents
            printCSVListContents(lines);
    
        }
    
        /**
         * Prints the CSV list contents.
         *
         * @param listOfLines the list of lines
         */
        private static void printCSVListContents(final List<List<String>> listOfLines) {
            int initialLineNo = 1;
            for (List<String> line : listOfLines) {
                int columnNo = 1;
                for (String contentsOfLine : line) {
                    System.out.println("Line Number: " + initialLineNo + " Column Number: " + columnNo + " Contents: " +  contentsOfLine);
                    columnNo++;
                }
                initialLineNo++;
            }
        }
    
        /**
         * Parses the CSV file.
         *
         * @param inputLineNumber the file name
         * @return the list
         */
        private static List<List<String>> parseCsvFile(final String inputLineNumber) {
            File file = new File(inputLineNumber);
    
            // To provide a 2-dimensional array of strings
            List<List<String>> lineList = new ArrayList<>();
            Scanner scannerStream;
    
            try {
                scannerStream = new Scanner(file);
                while (scannerStream.hasNext()) {
                    String line = scannerStream.next();
                    String[] values = line.split(",");
                    lineList.add(Arrays.asList(values));
                }
                scannerStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
            return lineList;
    
        }
         }
    

    【讨论】:

      【解决方案2】:
      public class Something { 
         private ArrayList<String> list = new ArrayList<>();
         ....
         Scanner inputStream = new Scanner(file);
         while (inputStream.hasNext()) {
                  list.add(inputStream.nextLine());
         }
         inputStream.close();
      
      ... use the list object as you wish...
      

      列表是一个类变量,因此该类的任何函数都可以访问它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多