将object [] []转换为ArrayList <Object []>

som*_*rti 5 java arrays collections arraylist multidimensional-array

我想可能在我的帖子之前已经多次询问/回答了这个问题.但我无法得到我想要的东西,所以我再次发布:

我想这样做:

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

但它给出了一个错误:

Type mismatch: cannot convert from List<float[]> to ArrayList<Float[]>
Run Code Online (Sandbox Code Playgroud)

我理解错误的原因但是在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);
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*øld 6

当你转换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);
}
Run Code Online (Sandbox Code Playgroud)

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

List<float[]> AF = Arrays.asList(fa2);
Run Code Online (Sandbox Code Playgroud)