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

标签 java arrays collections multidimensional-array arraylist

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

我正在尝试这样做:

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);

关于java - 将 object[][] 转换为 ArrayList<Object[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304949/

相关文章:

java - 如何将 Java 项目导入 Flash Builder 4.7?

javascript - 使用整数数组从数组中获取位置javascript的值

JavaScript 按字母顺序排序不对所有值进行排序

performance - IndexedSeq.last 复杂度

c# - 根据分组修改列表中元素属性的最佳方法

java - Android视频实时过滤

java - 数学帮助 - 无法旋转某些东西(了解 Java 会更好)

java - 为什么 Java 的 Class<T> 是泛型的?

java - 哈希表大小设置

java - 你必须同步并发集合吗?