当前位置: 首页 > 知识库问答 >
问题:

Java嵌套列表到数组转换

祁驰
2023-03-14

将数据从嵌套列表转换为对象数组(可以用作JTable的数据)的最有效的方法是什么?

List<List> table = new ArrayList<List>();

for (DATAROW rowData : entries) {
    List<String> row = new ArrayList<String>();

    for (String col : rowData.getDataColumn())
        row.add(col);

    table.add(row);
}

// I'm doing the conversion manually now, but
// I hope that there are better ways to achieve the same
Object[][] finalData = new String[table.size()][max];
for (int i = 0; i < table.size(); i++) {
    List<String> row = table.get(i);

    for (int j = 0; j < row.size(); j++)
        finalData[i][j] = row.get(j);
}

多谢!

共有2个答案

慎兴业
2023-03-14

特别是对于JTable,我建议对AbstractTableModel进行子类化,如下所示:

class MyTableModel extends AbstractTableModel {
    private List<List<String>> data;
    public MyTableModel(List<List<String>> data) {
        this.data = data;
    }
    @Override
    public int getRowCount() {
        return data.size();
    }
    @Override
    public int getColumnCount() {
        return data.get(0).size();
    }
    @Override
    public Object getValueAt(int row, int column) {
        return data.get(row).get(column);
    }
    // optional
    @Override
    public void setValueAt(Object aValue, int row, int column) {
        data.get(row).set(column, aValue);
    }
}

注意:这是可能的最基本的实现;为了简洁起见,省略了错误检查。

使用这样的模型,您就不必担心到object[][]的无意义转换。

杨鸿畅
2023-03-14
//defined somewhere
List<List<String>> lists = ....

String[][] array = new String[lists.size()][];
String[] blankArray = new String[0];
for(int i=0; i < lists.size(); i++) {
    array[i] = lists.get(i).toArray(blankArray);
}

我对JTable一无所知,但将列表的列表转换为数组只需几行就可以完成。

 类似资料:
  • 问题内容: 我正在尝试将嵌套列表转换为2d数组。 我想把它做成一个。我尝试了以下方法: 有没有可行的方法?请注意,直到运行时我才知道列表的大小,并且列表可能会锯齿。 问题答案: 没有简单的内置方法可以执行所需的操作,因为您只能返回存储在list中的元素数组,在您的情况下也可以是list。 最简单的解决方案是创建二维数组,并用每个嵌套列表的结果填充它。 (如果您像使用Alex一样将Java8与流一起

  • 如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段:

  • 我正在尝试编写一个规范来使用jolt转换进行以下转换。我只对更改json中键的名称感兴趣,值应该保持不变。帮帮我。 输入Json: 预期输出:

  • 我有json,其中包括多个产品,每个产品有多个不同的细节。使用jolt,我只需要输入json中的几个字段,遵循与输入json几乎相同的结构。我成功地迭代了产品,但是当我试图迭代每个产品变体时,我没有得到想要的输出。 输入. json 这里是Spec.json 我想要的预期输出。 我现在得到的实际输出。

  • 我试图有一个键值对映射到一个数组,区分每个值作为一个类型使用jolt转换规范 输入json 尝试了这个规格

  • 问题内容: 我该如何打开一个列表,例如: 进入列表列表,例如: 即我想将有序元素分组在列表中,并将其保留在有序列表中。我怎样才能做到这一点? 谢谢 问题答案: 假设data_list的长度是三的倍数