如何将对象列表转换为多维数组

时间:2016-06-13 15:07:19

标签: java arrays list multidimensional-array

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

在我的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)的每一列放在一个多维arraylist中,所以就好像我想访问arraylist中的特定单个值一样,我这样做。

3 个答案:

答案 0 :(得分:0)

你为什么要投身List<PhBonCmd>? 。默认情况下,ResultSet是多维的。如果要转换为多维List,可以通过处理ResultSet来完成。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

当你有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));
        }
}