我正在尝试创建一种从2d数组中删除重复项的方法。 外部数组包含点索引,内部数组包含其坐标。 看来我必须使用arraylist才能删除元素,而不必以数组中的空值结尾。 然后,我想将arraylist转换回2D数组,以便以我需要的格式返回它。 问题在于arraylsit包含一个对象数组,因此我无法将其转换为为浮点数设计的数组。 从我的数组列表中过滤浮点数的正确语法是什么? 我的代码如下:

public class rem_duplicates {
    public float [][] rem_geo_duplicates(float a[][]){

        ArrayList<float[]> al = new ArrayList<float[]>();
        float no_points = a.length;
        int count = 0;


        for (int i = 0; i < no_points-1; i++){
            if((a[i][0] == a[i+1][0])&&(a[i][1] == a[i+1][1])){
                    a[i] = null;
                    count ++;
            }

        for (int j = 0; j < no_points; j++){
            if (a[j] != null){
                al.add(a[j]);       
            }
        }

        //how do i get the arraylist 'al' into this array b[][]?
        float b[][] = new float [a.length-count][3];
        b = al.toArray();


        }

    }
    return b
}

===============>>#1 票数:2 已采纳

尝试使用以下内容:

float b[][] = new float [a.length-count][3];
b = al.toArray(b);

这是toArray()的通用版本,在您的情况下,它将返回float[][] 请记住, float[]是一个对象,因此这里没有装箱/拆箱的问题。

但是,我注意到您的代码存在一些基本问题-我建议尝试对其进行编译并解决错误。

===============>>#2 票数:2

如果将新创建的数组作为参数传递,则效果很好:

float b[][] = new float[a.length-count][];
b = al.toArray(b);

  ask by woolem translate from so

未解决问题?本站智能推荐:

关注微信公众号