使用嵌套列表存储数字java

时间:2018-04-03 07:56:34

标签: java list arraylist

我有一个.txt文件,其格式如下:

enter image description here

我需要以这种方式存储这些值,在索引0我需要

[[154.5,0.0],[13.3333333333333, 102.0],[6,272.0],[10.3333333333333,1860.0]...

(会有更多的配对导致txt中的第二列没有排序,之后会再次出现零)]。我希望你理解我的问题,我想我需要arraylist arraylist arraylist,我只需要一个想法,谢谢。

这是代码:

    String working_directory = System.getProperty("user.dir");
    File file = new File(working_directory + "\\src\\" + filename);
    BufferedReader br = new BufferedReader(new FileReader(file));

    ArrayList<ArrayList<Double>> array_A = new ArrayList<ArrayList<Double>>();
    ArrayList<Double> aux = new ArrayList<Double>();
    aux.add((double)0);
    aux.add((double)0);
    for ( int i = 0 ; i < matrixSize; i ++ ) {
            array_A.add(aux);
    }
    String[] elements_in_line = new String[3];
    String line;
    while ((line = br.readLine()) != null) {
        ArrayList<Double> value_col_index = new ArrayList<Double>();
        ArrayList<Double> pair = new ArrayList<Double>();

        elements_in_line = line.split(", ");

        double value = Double.parseDouble(elements_in_line[0]);
        int line_index = Integer.parseInt(elements_in_line[1]);
        int column_index = Integer.parseInt(elements_in_line[2]);
        boolean already_exists = false;

        if (array_A.get(line_index).size() > 0) {
            pair = array_A.get(line_index);
            for (int i = 0; i < pair.size(); i++) {
                if (column_index == pair.get(1)) {
                    already_exists = true;
                    break;
                }
            }
        }
        if (already_exists) {
            pair.set(0, pair.get(0) + value);
        } else {
            if (limit_line != 0) {
                if (array_A.get(line_index).size() == limit_line) {
                    System.out.println("Dimension of matrix exceeded!");
                    System.exit(1);
                }
            }
            array_A.set(line_index,new ArrayList<Double>(Arrays.asList(value,(double)column_index)));
        }
    }
    return array_A;
}

0 个答案:

没有答案