如何将arraylist的每一行分配给自己的数组

问题描述 投票:0回答:1

我能够将我的csv文件转换为arraylist,但我希望能够找到我的arraylist中每行的均值和标准差。我想通过将每一行转换为单个数组来执行此操作,以便能够调用以供将来使用。

    BufferedReader gradeBuffer = null;

    try {
        String gradeLine;
        gradeBuffer = new BufferedReader(new FileReader("Assignment4-datafile.csv"));

        // Read in file line by line
        while ((gradeLine = gradeBuffer.readLine()) != null) {
            System.out.println(gradeCSVtoArrayList(gradeLine));
        }
        //throw exception if file not found
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (gradeBuffer != null) gradeBuffer.close();
        } catch (IOException gradeException) {
            gradeException.printStackTrace();
        }
    }
}

// Convert CSV to ArrayList using Split
public static ArrayList<String> gradeCSVtoArrayList(String gradeCSV) {
    ArrayList<String> gradeResult = new ArrayList<String>();

    if (gradeCSV != null) {
        String[] splitData = gradeCSV.split("\\s*,\\s*");
        for (int i = 0; i < splitData.length; i++) {
            if (!(splitData[i] == null) || !(splitData[i].length() == 0)) {
                gradeResult.add(splitData[i].trim());

            }
        }
    }

    return gradeResult;

}

}

java
1个回答
0
投票

我认为您需要做的第一件事是更改gradeCSVtoArrayList以返回数字列表,无论是长数还是双数,具体取决于它是整数还是浮点数。

public static ArrayList<Long> gradeCSVtoArrayList(String gradeCSV) {
    ArrayList<Long> gradeResult = new ArrayList<Long>();

    if (gradeCSV != null) {
        String[] splitData = gradeCSV.split("\\s*,\\s*");
        for (int i = 0; i < splitData.length; i++) {
            if (!(splitData[i] == null) || !(splitData[i].length() == 0)) {
                gradeResult.add(Long.parseLong(splitData[i].trim()));

            }
        }
    }

    return gradeResult;
}

通过此列表,您可以找到平均值和标准偏差。

© www.soinside.com 2019 - 2024. All rights reserved.