从ArrayList访问数据

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

我正在用动态行和列动态填充列表,并使用p:columns在质数p:datatable中显示它们。一切都已正确完成,但我无法从指定的行和列中获取价值,例如第4行和第3列。代码如下:-

    public LiveRangeService() {
    tableData = new ArrayList< Map<String, ColumnModel> >();

    //Generate table header.
    tableHeaderNames = new ArrayList<ColumnModel>();
    for (int j = 0; j < 10; j++) {
          tableHeaderNames.add(new ColumnModel("header "+j, " col:"+ String.valueOf(j+1)));
    }

    //Generate table data.
    for (int i = 0; i < 8; i++) {
        Map<String, ColumnModel> playlist = new HashMap<String, ColumnModel>();
        for (int j = 0; j < 10; j++) {
            playlist.put(tableHeaderNames.get(j).key, new ColumnModel(tableHeaderNames.get(j).key,"row:" + String.valueOf(i+1) +" col:"+ String.valueOf(j+1)));
        }
        tableData.add(playlist);
    }
    try {
        System.out.println( "Table Data Size " + tableData.size() );
        System.out.println( "Value Of Row 1 Col 2: " + tableData.get(1).get(2) );
    } catch (Exception e) {
        System.out.println( "Error!! " + e.getMessage() );
    }
}

[某些机构可以帮助我理解这段代码。错误发生在以下行:-

            System.out.println( "Value Of Row 1 Col 2: " + tableData.get(1).get(2) );
java jsf primefaces
1个回答
0
投票

Java从0开始计数。

tableData.get(0).get(0)将在第1行和第1列获取元素。包含ArrayListMap从0开始。但是,tableData.get(tableData.size())将引发错误,因为它将包含元素中的元素数量。数组列表。 (因此,如果一个数组包含3个元素,则tableData.size()将返回3,您可以通过调用tableData.get(2)来对其进行调用。)

[tableData.get(1).get(2)将在第2行和第3列获取元素。

要获取元素在第1行第2列的值,请调用tableData.get(0).get(1)

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