ArrayList转换为二维数组有问题,请指点

xhust2000 2006-02-09 10:34:54
public String[][] getArray(ArrayList rs){
rs = this.doExcel();
String[][] excel_str=new String[rs.size()][]; //转换为二维数组
try{
for(int i=0;i<excel_str.length;i++){
ArrayList temp=(ArrayList)rs.get(i);
excel_str[i]=(String[])(temp.toArray(new String[0]));
}
}catch(Exception e){
System.err.println(e.getMessage());
}
return excel_str;
}
这是我写的一个方法,运行时可以得到ArrayList,是正确的结果,但是在执行到excel_str[i]=(String[])(temp.toArray(new String[0]));这行语句时,就有问题,catch到null,不知道为什么会这样,那位能指点一二,谢谢
...全文
1511 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhust2000 2006-02-13
  • 打赏
  • 举报
回复
怎么没有人回答呢?哪位能够看看我的代码,只要能解决,马上揭帖的!
leobase 2006-02-13
  • 打赏
  • 举报
回复
String[][] excel_str=new String[rs.size()][]; //转换为二维数组
------

String[][] excel_str=new String[rs.size()][10000]; //转换为二维数组
xhust2000 2006-02-13
  • 打赏
  • 举报
回复
System.out.println("rs.get("+i")=" + temp);
没有null的,是正确的结果
yuzl32 2006-02-13
  • 打赏
  • 举报
回复
先确定下面取出的值会不会是null.
ArrayList temp=(ArrayList)rs.get(i); // i --> 0 ~ excel_str.length
System.out.println("rs.get("+i")=" + temp);
treeroot 2006-02-09
  • 打赏
  • 举报
回复
NullPointer
OO00 2006-02-09
  • 打赏
  • 举报
回复
一维的:
String[] temp = (String[])rs.toArray(new String[rs.size()]);

自己在变一变吧
piaopiao11 2006-02-09
  • 打赏
  • 举报
回复
你的ArrayList里存的是object型的数据把 转为object[][]应该可以
xhust2000 2006-02-09
  • 打赏
  • 举报
回复
excel_str[i]=(String[])(temp.toArray());这个就更不行了,
excel_str[i]=temp.toArray(new String[0]);这个用法是没有错误的,先前我已经用过,没有问题,只不过现在我要操作excel文件,将数据存储到一个ArrayList后,转换成数组就有问题,不知和解,但如果是将一个结果集存入ArrayList后,用同样的方法是没有问题的
bevin1010 2006-02-09
  • 打赏
  • 举报
回复
ArrayList temp=(ArrayList)rs.get(i); 这个数组元素中还有数组啊
不知道有没有为空的情况!
要不就用这个
excel_str[i]=(String[])(temp.toArray());
andycpp 2006-02-09
  • 打赏
  • 举报
回复
我是菜鸟,第一条语句就没看懂啊
rs = this.doExcel(); rs是参数啊,他的值还没有使用就被覆盖了,要这个参数有啥意义啊?
xhust2000 2006-02-09
  • 打赏
  • 举报
回复
excel_str[i]=temp.toArray(new String[0]);
这么用是不行的,会出现错误提示:type mismatch:cannot convert from Object[] to String[]
bevin1010 2006-02-09
  • 打赏
  • 举报
回复
excel_str[i]=temp.toArray(new String[0]);
yanhan0615 2006-02-09
  • 打赏
  • 举报
回复
首先,对于rs = this.doExcel();这句是有问题的,你的rs是参数,这样做就没有了参数的意义,我想你是要把doExcel();的结果传进来应该在外部调用getArray(doExcel()),在函数内部就可以直接使用rs了;
第二, excel_str[i]=(String[])(temp.toArray(new String[0]));String[]是数组的声明方法,不能这样的转换,应该老老实实的
String[] array;
for(int j = 0 ; j < temp.size();j++)
{
array[j] = (String)temp.get(j);
}
这样array就是你要的数据了
第三,如果你想用toArray()方法,那应该声明一个Object[]数组,然后逐一的转换成String类型;(这个你应该会,我就不写了)
第四,如果你想用toArray(Object[] a)方法,应该这样:
Object[] array;
excel_str[i]=temp.toArray(array);
这样array就是你要的数据,并且重复第三步
xhust2000 2006-02-09
  • 打赏
  • 举报
回复
在线等,能解决者马上给分

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧