【问题标题】:How to convert a list of objects to a multi-dimensional array如何将对象列表转换为多维数组
【发布时间】:2016-10-14 01:51:16
【问题描述】:

我有一个对象列表(来自一个选择查询),我想将它转换为一个数组,并且我想将查询的每一列放在数组中的一列中。我在论坛尝试了很多解决方案,但我没有找到解决方案。

在我的 bean 中,我有以下列表:

private List<PhBonCmd> listEntree; // The PhBonCmd is an object model imported  has attributes like codeprod , quant ,...
.....
String sql ="select c.codeprod as codeprod , c.quant as quant ,c.date_cmd as date_cmd, c.date_expir as date_expir,c.numbco as numbco, c.auteur as auteur,"
            +"c.idcmd as idcmd ,f.nomfourn as nomfourn ,coalesce(c.quant_livre, 0) as quant_livre ,m.libelle as libelle "
            +"from commandes c,listeproduit m,fournisseur f "
            +"where c.codeprod=m.codeproduit and c.fourn=f.idfourn and c.statut='IN' and c.numbco ='"+getNumbco()+"' ";

   listEntree =  (List<PhBonCmd>) this.bcService.execRequete(sql);//Here the results of the sql query

现在我想要将 List (listEntree) 的每一列放入一个多维数组列表中,这样就好像我想访问数组列表中的特定单个值一样。

【问题讨论】:

标签: java arrays list multidimensional-array


【解决方案1】:

我想将查询结果放在一个数组中,然后从那里访问数组的元素。有这样的东西 array1[row][col]

【讨论】:

  • 您能否将其创建为评论而不是答案?
【解决方案2】:

你为什么要投到List&lt;PhBonCmd&gt;? . ResultSet 默认是多维的。如果要转成多维List,可以通过处理ResultSet来实现。

如果您使用的是 Spring ,则可以使用 RowMapperResultSetExtractor 来获得所需的行为。

【讨论】:

    【解决方案3】:

    我不知道这样做的原因,当你有 OOP 能力时,但就是这样。 您必须使用reflection 即时了解PhBonCmd 的字段(如果您愿意,可以说列):

    Class clazz = PhBonCmd.class;
    Field[] fields = clazz.getFields();
    
    String[][] myDemensionalArray = new String[fields.length()][listEntree.size()]; 
    for(int i=0; i < fields.length(); i++){
        for(int j=0; j < listEntree.size(); j++){
                  myDemensionalArray[i][j] = fields[i].get(listEntree.get(j));
            }
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2016-11-28
      • 2012-11-14
      • 2014-05-25
      相关资源
      最近更新 更多