Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Arraylist中获取浮点数而不是对象_Java_Arrays_Arraylist_Indexing_Duplicates - Fatal编程技术网

Java 从Arraylist中获取浮点数而不是对象

Java 从Arraylist中获取浮点数而不是对象,java,arrays,arraylist,indexing,duplicates,Java,Arrays,Arraylist,Indexing,Duplicates,我试图创建一个方法,从二维数组中删除重复项。外部数组包含点索引,内部数组包含点索引的坐标。看起来我必须使用arraylist才能删除元素,而不会以数组中的空值结束。然后我想将arraylist转换回2D数组,以便以我需要的格式返回它。问题是arraylsit包含一个对象数组,因此我无法将其强制转换到为浮动设计的数组中。从我的数组列表中筛选浮动的正确语法是什么。我的代码如下: public class rem_duplicates { public float [][] rem_geo_d

我试图创建一个方法,从二维数组中删除重复项。外部数组包含点索引,内部数组包含点索引的坐标。看起来我必须使用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
}
公共类rem\u重复{
公共浮动[][]rem\U geo\U副本(浮动a[][]){
ArrayList al=新的ArrayList();
浮点数=a.长度;
整数计数=0;
对于(int i=0;i
尝试使用以下方法:

float b[][] = new float [a.length-count][3];
b = al.toArray(b);
这是一个通用版本,在您的情况下,它将返回一个
float[][]
。请记住,
float[]
是一个对象,因此这里没有装箱/取消装箱问题


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

尝试使用以下方法:

float b[][] = new float [a.length-count][3];
b = al.toArray(b);
这是一个通用版本,在您的情况下,它将返回一个
float[][]
。请记住,
float[]
是一个对象,因此这里没有装箱/取消装箱问题


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

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

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

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

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