首先介绍List的toArray方法,他把list转化成object数组。
List list = new ArrayList();
list.add(new Long(1));list.add(new Long(2));
//Long[] l = (Long[])list.toArray();这里会报错,因为list.toArray()返回的是Object[],不能直接强转成Long型,应该成下面这行
Long [] l = (Long []) list.toArray(new Long[list.size()]);①
① 也可以改成 Object[] o = list.toArray(); for(int i=0;i<o.length;i++){
l[i] = (Long)o[i];
}
把list转换成二维数组,如下:
List list = new ArrayList();
String[] str1 = {"a","1"};
String[] str2 = {"b","2"};
list.add(str1);
list.add(str2);
Object[] s = (Object[])list.toArray();
String[][] aa = new String[s.length][];
int j=0;
for(int i=0;i<s.length;i++){
aa[i] = (String[])s[i];
}
//输出二维数组的值
for(int z=0;z<aa.length;z++){
for(int i=0;i<aa[z].length;i++){
System.out.println(aa[z][i]);
}
}
这里是最简单的情况,List中的每一条是一个String[]数组,但是如果List是从数据库中查出的话,List中的每一条是一个Object[]数组,上述中的aa[i] = (String[])s[i];就会Object数组无法转换成String数组的错误。故不能用list.toArray这种方法,只能一个一个赋值。例:
从SQL语句得到的数据库的数据集存到二维数组里:CODE,NAMES值分别为001,zy这种
String sql = "select CODE,NAMES from sims_dd_dict where pid=92";
效果如:
List list = new ArrayList();
Object[] str1 = {"a","1"};
Object[] str2 = {"b","2"};
list.add(str1);
list.add(str2);
String[][] str = new String[list.size()][];
for(int i=0;i<list.size();i++){
Object[] s = (Object[])list.get(i);
str[i] = new String[s.length];
for(int j=0;j<s.length;j++){
str[i][j] = s[j].toString();
}
}
如果去数据库取结果集用的是jdbcTemplate.queryForList,那么它每一行返回的是Map而非Object[],故需要换一种形式转化成二维数组,如下:
List result = jdbcTemplate.queryForList(sql);
String[][] z = new String[result.size()][];
for(int i=0;i<z.length;i++){
Map m = (Map)result.get(i);
z[i] = new String[2]; //(1)
Set set = m.keySet(); //(3)
Iterator it =set.iterator();
for(int j=0;it.hasNext();j++){
// System.out.println((String)m.get(it.next())); //(2)
z[i][0] = (String)it.next();
z[i][1] = (String)m.get(z[i][0]);
}
}
必须要有(1),如果不设置的话在 z[i][j]=(String)m.get(it.next()); 处会报错,因为最开始初始化时未给第二维定义长度
如果想打印长度的话可以String str=(String)m.get(it.next()); System.out.println(str); z[i][j]=str;
如果用(2)的话会造成每行结果it.next()两次
通过(3)得到Map中所有的键,然后通过m.get(it.next());得到值,放入数组中。
另:如果sql为 select count(*) from A 的话,那么list.get(0)得到的是一个java.math.BigInteger型,需要String.valueOf()转换一下,如果sql为select name from A ,只选一个字段的话,那么每个list.get(i)是一个Object对象,如果选两个字段的话为Object[]数组
分享到:
相关推荐
List(Of T)转换成Array(,)
通过vue解析表头合并的表格,后台返回的数据格式为[{name:aa,list:[{value:100}]}] 通过table与v-for组合循环数据达到目的。 vue 表头合并数据解析 vue 二维数组解析 vue 二维list解析 vue table+v-for
主要介绍了Java编程一维数组转换成二维数组,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
里面的函数有如下: void GetImageParament(CImage *pImg,struct IMAGEPARAMENT *ppImgParam); int InImage(CImage *pImg,int x,int y); DWORD GetPixelValue(CImage *pImg,int x...void Release2DList(BYTE** list);
主要介绍了java 遍历Map及Map转化为二维数组的实例的相关资料,希望通过本文能帮助到大家,实现这样的功能,需要的朋友可以参考下
如下所示: import numpy ... 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Python的numpy库中将矩阵转换为列表等函数的方法python的dataframe转换为多维矩阵的方法Python嵌套列表转一维的方法(压
在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不...
leetcode二维数组搜索力码 力扣解决方案。 在大多数情况下,始终尝试优化时间复杂度 O(n^2) -> O(nlogn) 或 O(n)。 小贴士: 字典内置方法 keys() 不会返回列表对象。 要获取键列表,需要尝试 list(newdict.keys())...
我想将一个二维数组横纵列转过来,我就不信只有我有这个需求,可是百度了好久,四海八荒都找遍了…… 后来证明还是大神说的google好用 ~ 第一条就是,鄙视臭百度 此番记录下来,也方便各位道友查阅(好想说“仙友”...
(28)二维数组的初始化 (29)二维数组与指针 (30)二维数组应用实例 (31)二维数组应用实例(2) (32)用一维数组来存储字符串 (33)字符串的输入与输出 (34)字符串数组 (35)用于字符串处理的函数 (36)字符串应用实例 (37)传...
本篇通过行转列引出了System.Linq.Dynamic,并且介绍了过滤功能,具有很好的参考价值。下面跟着小编一起来看下吧
二维ee.List对象的列可以作为回归缩减器的输入。下面的例子提供了简单的证明;自变量是因变量的副本,产生等于 0 的 y 截距和等于 1 的斜率。 注意:减少的结果ee.List是一个对象。将其强制转换为 an ee.Dictionary...
数组 一维数组、数组参数、数组返回值、数组增删、扩容、排序、二维数组 chp6.面向对象 类和对象、实例变量、构造方法、方法重载、引用的概念、this关键字 chp7.面向对象三大特性 封装、继承、多态、对象创建过程、...
需要把list转换成tree的结构。 每个节点有4个属性,id、label、newVal、children数组; 通过children数组包含关系标示上下级。 var treeData={ id: 1, label: '一级 1', newVal: "", children: [{ i
支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...
支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...
6.2.3 二维数组的空间模型 6.2.4 二维数组的使用 6.3 数组操作 6.3.1 排序数组 6.3.2 查找 6.3.3 复制数组 6.3.4 填充数据 6.3.5 比较数组 6.4 实例:杨辉三角 6.5 本章习题 第7章 对象与类 7.1 面向对象...
通过代码熟悉过程: # -*- coding: utf-8 -*- ... 数组 print('a2 :',a2) #('a2 :', array([[1, 2, 3],[4, 5, 6]])) a3 = mat(a1) #列表 ----> 矩阵 print('a3 :',a3) #('a3 :', matrix([[1, 2, 3],[4, 5, 6
支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...
通常在DAL层我们都需要把DataTable转换为List让调用者尽可能的好用,尽量的不用关心数据库的字段等,所以我们一般传过去的都是List而不是DataTable。 泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力...