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