将对象[][]转换为数组列表<对象[]>



我想这个问题可能在我发帖之前已经被问过/回答过好几次了。但是我不能得到我正在寻找的确切的东西,所以我再次发布:

我想这样做:

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>();
AF = Arrays.asList(fa2);

但是它给出了错误:

Type mismatch: cannot convert from List<float[]> to ArrayList<Float[]>

我理解错误的原因,但什么是最方便的方式来做Java转换?

这是我能想到的最简单的方法。有更好/更方便的吗?

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>(fa2.length);
for (float[] fa : fa2) {
    //initialize Float[]
    Float[] Fa = new Float[fa.length];
    //copy element of float[] to Float[]
    int i = 0;
    for (float f : fa) {
        Fa[i++] = Float.valueOf(f);
    }
    //add Float[] element to ArrayList<Float[]>
    AF.add(Fa);
}

当你从float[]转换到Float[]时,你必须手动完成:

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>();
for(float[] fa: fa2) {
    Float[] temp = new Float[fa.length];
    for (int i = 0; i < temp.length; i++) {
        temp[i] = fa[i];
    }
    AF.add(temp);
}

或者你可以一直使用float[]:

List<float[]> AF = Arrays.asList(fa2);

这个为我运行:

float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<float[]> AF = Arrays.asList(fa2); 

编辑:如果出于某种原因你必须混合float[]和float[]使用Apache Commons ArrayUtils.toObject

float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<Float[]> AF = new ArrayList(fa2.length);
for (float[] fa : fa2) {
  AF.add(ArrayUtils.toObject(fa));
}

还有一种方法:

    float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
   ArrayList<float[]> AF = new ArrayList<float[]>((Collection<float[]>)Arrays.asList(fa2))

我忘了加演员了。固定。

你可以这样做,你不需要转换:

Float[][] test = {{2f,3f},{3f,4f}};

允许在Java中包装本机以更改为对象的概念称为自动装箱,这里正在使用它。然而,要做到这一点,你必须明确地说这些数字是浮点数,或者使用(float)对它们进行强制转换。

try

    float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
    List<float[]> af = Arrays.asList(fa2);

Float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<Float[]> af = Arrays.asList(fa2);

相关内容

  • 没有找到相关文章

最新更新