开发者

how to add data to ARRAYLIST

try {
    final List<String> ar = new ArrayList<String>();
    final PRIvariable pri = new PRIvariable();

    final BufferedReader reader = new BufferedReader(
        new InputStreamReader(new FileInputStream("C:/cdr2.csv")));

    while (reader.ready()) {
        final String line = reader.readLine();
        final String[] values = line.split(",");
        pri.da开发者_开发知识库teText = values[2] + "    " + values[4];
        pri.count = pri.count + 1;
        pri.sum = pri.sum + Integer.parseInt(values[7]);
        System.out.println(pri.dateText + "  " + pri.sum + " " + pri.count);
        ar.add(pri);
    }

    final String[] columnNames = { "Date", "TOTAL", "COUNTS" };
    final String[][] cells = new String[ar.size()][3];
    for (int i = 0; i < ar.size(); i++) {
        cells[i][0] = ((PRIvariable) ar.get(i)).dateText;
        cells[i][1] = "" + ((PRIvariable) ar.get(i)).sum;
        cells[i][2] = "" + ((PRIvariable) ar.get(i)).count;
    }
    table = new JTable(cells, columnNames);
    table.setSize(400, 400);
    table.setVisible(true);
    final JScrollPane js = new JScrollPane();
    js.setViewportView(table);
    js.setSize(400, 400);
    js.setVisible(true);
    add(js, java.awt.BorderLayout.CENTER);

} catch (final Exception e) {
    System.out.println(e);
}

This is my code. Here i want to Read text file and put that data to Jtable. But in this code it shows every row of the Jtable filled with same data that contain in arraylist(ar) last row. ( i think there is problem in my arraylist). How can i solve this......


The problem is with the variable pri. It has to be created inside the while loop.

Like this

String line = null;
while ((line = reader.readLine()) != null) {
    PRIvariable pri = new PRIvariable();
    String[] values = line.split(",");
    pri.dateText = values[2] + "    " + values[4];
    pri.count = pri.count + 1;
    pri.sum = pri.sum + Integer.parseInt(values[7]);
    System.out.println(pri.dateText + "  " + pri.sum + " " + pri.count);
    ar.add(pri);
}

In your code your want to create a separate instance of PRIvariable for every line in the file, but you are creating only once instance of PRIvariable at the beginning then you are always using that instance by overriding the previous value.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜