0

使用下面的代码片段,我试图从从 Hibernate 返回的 List 中构建一个多维数组 double[][]:

data列表到达,尝试返回一个makeSet数组。最佳的,是我不知道我应该有多少阵列。所以我尝试调用,但除非我在代码中创建一个,否则代码不能很好地迭代。makeSet[][] doublemakeInnerSetnew double[][] ix, iy

有没有办法知道数组 [][] 的列?

也许还有另一种解决问题的方法?

必须取回 Hibernate 的标量值并使它们成为任何大小的 double[][]。有什么帮助吗?

List data = qry.list();
double[][] inputData = makeSet(data);

public double[] makeInnerSet(List data, double[] ix, int col ){
    int i = 0;
    Iterator<?> itr1 = data.listIterator();
    while (itr1.hasNext()) {
        Object[] result = (Object[]) itr1.next();
        if (result[col] != null) {
            double res1 = (Double) result[col];
            ix[i] = res1;
        }else{
            ix[i] = 0;
        }
        i++;
    }
    return ix;
}
public double[][] makeSet(List data){
    Iterator<?> itr1 = data.listIterator();
    double[] ix = new double[data.size()];
    double[] iy = new double[data.size()];
    double[][] x = { makeInnerSet(data, iy,0), makeInnerSet(data, ix,1) };  
    return x;
}

编辑 制作代码:

double[][] x = { 
            makeInnerSet(data, new double[data.size()],0), 
            makeInnerSet(data, new double[data.size()],1) 
            };  

一半找到我的答案......几秒钟后......我现在当然不需要ix,iy。但是如何获取 List 中的列数?

4

1 回答 1

0

假设列表中的所有数组都具有相同的大小(因为否则 makeinnerset 也会爆炸):

int columns = ((Object[])data.first()).size()

代码获取第一个数组并获取它的大小,所有数组都应该相同。

于 2012-08-31T09:27:43.597 回答