CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

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

楼主xhust2000(xhust2000)2006-02-09 10:34:54 在 Java / J2SE / 基础类 提问

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,不知道为什么会这样,那位能指点一二,谢谢 问题点数:100、回复次数:14Top

1 楼bevin1010(木瓜)回复于 2006-02-09 10:47:10 得分 0

excel_str[i]=temp.toArray(new   String[0]);Top

2 楼xhust2000(xhust2000)回复于 2006-02-09 11:10:20 得分 0

excel_str[i]=temp.toArray(new   String[0]);  
  这么用是不行的,会出现错误提示:type   mismatch:cannot   convert   from   Object[]   to   String[]Top

3 楼andycpp(幻瞳)回复于 2006-02-09 11:19:32 得分 0

我是菜鸟,第一条语句就没看懂啊  
  rs   =   this.doExcel();     rs是参数啊,他的值还没有使用就被覆盖了,要这个参数有啥意义啊?Top

4 楼bevin1010(木瓜)回复于 2006-02-09 11:33:28 得分 0

ArrayList   temp=(ArrayList)rs.get(i);     这个数组元素中还有数组啊  
  不知道有没有为空的情况!  
  要不就用这个  
  excel_str[i]=(String[])(temp.toArray());  
  Top

5 楼xhust2000(xhust2000)回复于 2006-02-09 11:37:22 得分 0

excel_str[i]=(String[])(temp.toArray());这个就更不行了,  
  excel_str[i]=temp.toArray(new   String[0]);这个用法是没有错误的,先前我已经用过,没有问题,只不过现在我要操作excel文件,将数据存储到一个ArrayList后,转换成数组就有问题,不知和解,但如果是将一个结果集存入ArrayList后,用同样的方法是没有问题的Top

6 楼piaopiao11()回复于 2006-02-09 11:56:58 得分 0

你的ArrayList里存的是object型的数据把   转为object[][]应该可以Top

7 楼OO00(四个圈)回复于 2006-02-09 12:11:15 得分 0

一维的:  
                  String[]   temp   =   (String[])rs.toArray(new   String[rs.size()]);  
   
  自己在变一变吧Top

8 楼treeroot(旗鲁特)回复于 2006-02-09 12:32:17 得分 0

NullPointerTop

9 楼xhust2000(xhust2000)回复于 2006-02-09 14:44:39 得分 0

在线等,能解决者马上给分Top

10 楼yanhan0615(炮炮)回复于 2006-02-09 17:50:54 得分 100

首先,对于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就是你要的数据,并且重复第三步Top

11 楼yuzl32(有酒醉)回复于 2006-02-13 10:10:20 得分 0

先确定下面取出的值会不会是null.  
  ArrayList   temp=(ArrayList)rs.get(i);   //   i   -->   0   ~   excel_str.length  
  System.out.println("rs.get("+i")="   +   temp);Top

12 楼xhust2000(xhust2000)回复于 2006-02-13 10:29:45 得分 0

System.out.println("rs.get("+i")="   +   temp);  
  没有null的,是正确的结果Top

13 楼leobase(沉默)回复于 2006-02-13 10:36:36 得分 0

String[][]   excel_str=new   String[rs.size()][];   //转换为二维数组  
  ------  
   
  String[][]   excel_str=new   String[rs.size()][10000];   //转换为二维数组  
  Top

14 楼xhust2000(xhust2000)回复于 2006-02-13 11:49:29 得分 0

怎么没有人回答呢?哪位能够看看我的代码,只要能解决,马上揭帖的!Top

相关问题

  • 二维数组
  • 二维数组的排序问题,请指点
  • oracle 二维数组
  • 如保用ArrayList存储一个二维数组???
  • 如果我想用ArrayList存储一个二维数组要怎么做?
  • 我该怎么从ArrayList中取出二维数组中的数据呢?
  • 二维数组问题
  • 二维数组的疑惑
  • 动态二维数组?
  • 关于二维数组.

关键词

  • 转换
  • excel
  • 转换为二维数组
  • rs
  • str
  • size

得分解答快速导航

  • 帖主:xhust2000
  • yanhan0615

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo