`
zy116494718
  • 浏览: 471283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

把List转换成二维数组

    博客分类:
  • Java
阅读更多

 

    首先介绍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)转换成二维数组.vb

    List(Of T)转换成Array(,)

    前端vue二维数组解析

    通过vue解析表头合并的表格,后台返回的数据格式为[{name:aa,list:[{value:100}]}] 通过table与v-for组合循环数据达到目的。 vue 表头合并数据解析 vue 二维数组解析 vue 二维list解析 vue table+v-for

    Java编程一维数组转换成二维数组实例代码

    主要介绍了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转化为二维数组的实例

    主要介绍了java 遍历Map及Map转化为二维数组的实例的相关资料,希望通过本文能帮助到大家,实现这样的功能,需要的朋友可以参考下

    python numpy 一维数组转变为多维数组的实例

    如下所示: import numpy ... 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Python的numpy库中将矩阵转换为列表等函数的方法python的dataframe转换为多维矩阵的方法Python嵌套列表转一维的方法(压

    python中字符串变二维数组的实例讲解

    在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不...

    leetcode二维数组搜索-LeetCode:力扣解决方案

    leetcode二维数组搜索力码 力扣解决方案。 在大多数情况下,始终尝试优化时间复杂度 O(n^2) -&gt; O(nlogn) 或 O(n)。 小贴士: 字典内置方法 keys() 不会返回列表对象。 要获取键列表,需要尝试 list(newdict.keys())...

    JS实现二维数组横纵列转置的方法

    我想将一个二维数组横纵列转过来,我就不信只有我有这个需求,可是百度了好久,四海八荒都找遍了…… 后来证明还是大神说的google好用 ~ 第一条就是,鄙视臭百度 此番记录下来,也方便各位道友查阅(好想说“仙友”...

    八十多条C语言基础教程

    (28)二维数组的初始化 (29)二维数组与指针 (30)二维数组应用实例 (31)二维数组应用实例(2) (32)用一维数组来存储字符串 (33)字符串的输入与输出 (34)字符串数组 (35)用于字符串处理的函数 (36)字符串应用实例 (37)传...

    C# List实现行转列的通用方案

    本篇通过行转列引出了System.Linq.Dynamic,并且介绍了过滤功能,具有很好的参考价值。下面跟着小编一起来看下吧

    Google Earth Engine(GEE)-在线计算列表二维ee.List对象为线性回归方程计算slope和残差.pdf

    二维ee.List对象的列可以作为回归缩减器的输入。下面的例子提供了简单的证明;自变量是因变量的副本,产生等于 0 的 y 截距和等于 1 的斜率。 注意:减少的结果ee.List是一个对象。将其强制转换为 an ee.Dictionary...

    java培训机构内部预习文档

    数组 一维数组、数组参数、数组返回值、数组增删、扩容、排序、二维数组 chp6.面向对象 类和对象、实例变量、构造方法、方法重载、引用的概念、this关键字 chp7.面向对象三大特性 封装、继承、多态、对象创建过程、...

    【JavaScript源代码】js如何构造elementUI树状菜单的数据结构详解.docx

     需要把list转换成tree的结构。 每个节点有4个属性,id、label、newVal、children数组; 通过children数组包含关系标示上下级。 var treeData={ id: 1, label: '一级 1', newVal: "", children: [{ i

    smartTable-2.2.0.zip

    支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...

    一款android自动生成表格框架smartTable-master.zip

    支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...

    java初学者必看

    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 面向对象...

    python 列表,数组,矩阵两两转换tolist()的实例

    通过代码熟悉过程: # -*- coding: utf-8 -*- ... 数组 print('a2 :',a2) #('a2 :', array([[1, 2, 3],[4, 5, 6]])) a3 = mat(a1) #列表 ----&gt; 矩阵 print('a3 :',a3) #('a3 :', matrix([[1, 2, 3],[4, 5, 6

    Android代码-好用漂亮的Android表格框架,样式丰富。

    支持二维数组展示(用于类似日程表,电影选票等); 导入excel(支持颜色,字体,背景,批注,对齐,图片等基本Excel属性); 表格合并单元(支持注解合并,支持自动合并); 支持其他刷新框架SmartRefreshLayout; 可...

    C#中将DataTable转化成ListT的方法解析

    通常在DAL层我们都需要把DataTable转换为List让调用者尽可能的好用,尽量的不用关心数据库的字段等,所以我们一般传过去的都是List而不是DataTable。 泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力...

Global site tag (gtag.js) - Google Analytics