【问题标题】:Convert ArrayList<ArrayList<Object>> to Object[][]将 ArrayList<ArrayList<Object>> 转换为 Object[][]
【发布时间】:2014-05-09 17:32:17
【问题描述】:

我想用这样的 cnstructor 填充 JTable:

new JTable(datas, columns);

所以我需要一个Object[] 用于列,一个Object[][] 用于数据。 问题是当我尝试获取数据时。

在我的一种方法中,我使用ArrayList&lt;ArrayList&lt;Object&gt;&gt;,我想将其转换为Object[][]

这是我的代码示例:

ArrayList<ArrayList<Object>> datas = new ArrayList<ArrayList<Object>>();

for (Map.Entry<Integer, JSObject> entry : params.entrySet()) {
    datas.add(entry.getValue().getValues()); // getValues returns an ArrayList<Object>
}

return new datas.toArray(); //  not seems to work

我在这个问题Convert ArrayList<Object[]> to Object[][] 中看到了一些想法,但我不确定结果。

提前致谢!

【问题讨论】:

  • 为什么不直接使用Object[][] 来代替datas
  • 另外,return new datas.toArray(); 不是一个有效的声明(new 应该被删除)
  • 因为我从另一个我更喜欢使用 ArrayList 的对象中获取参数,但我尝试了这个解决方案,并让你知道它的来源......是的,new 无事可做在这里,谢谢

标签: java arrays object arraylist


【解决方案1】:

难道你不能把datas的类型改成ArrayList&lt;Object[]&gt;,每次添加元素都使用toArray()吗:

ArrayList<Object[]> datas = new ArrayList<Object[]>();
for (Map.Entry<Integer, JSObject> entry : params.entrySet()) {
    datas.add(entry.getValue().getValues().toArray());
}
return datas.toArray(new Object[][]{});

【讨论】:

  • 我必须添加(Object[][]) 才能强制转换返回语句,但它似乎有效,我测试它并让你知道
  • @Nobe4: 是的,使用另一个toArray() 代替以防止需要转换。
猜你喜欢
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 2014-05-16
相关资源
最近更新 更多