Arraylist java总是给我最后一个值
我花了一整天来解决这个问题。我可以毫无问题地填充arrayList,但是当我尝试获取值时,我总是接收最后一个值Arraylist java总是给我最后一个值,java,arrays,arraylist,Java,Arrays,Arraylist,我花了一整天来解决这个问题。我可以毫无问题地填充arrayList,但是当我尝试获取值时,我总是接收最后一个值 private List<double[]> marker; double[] m= new double[3]; double[] a= new double[3]; .... marker= new ArrayList<double[]>(); for (int i=0;i<150;i++){ int k = Math.abs
private List<double[]> marker;
double[] m= new double[3];
double[] a= new double[3];
....
marker= new ArrayList<double[]>();
for (int i=0;i<150;i++){
int k = Math.abs(random.nextInt(10));
int r = Math.abs(random.nextInt(10));
int s = Math.abs(random.nextInt(10));
m[0]=i;
m[1]=46+(((double)k)*0.1)+(((double)r)*0.01)+(((double)s)*0.001);
m[2]=9+(((double)r)*0.1)+(((double)s)*0.01)+(((double)k)*0.001);
marker.add(m);
}
a=marker.get(5);
Log.i("Io","indice: "+a[0]+"lat: "+a[1]+"lon"+a[2]);
私有列表标记;
double[]m=新的double[3];
双精度[]a=新双精度[3];
....
marker=newarraylist();
对于(int i=0;i您需要为每个项目创建对象。您只创建一个引用,它们都使用相同的值并进行更新,您将获得最后更新的值
for (int i=0;i<150;i++){
m= new double[3];
}
for(int i=0;i因为您一直在使用同一个数组,有效地一次又一次地覆盖它的值
您需要为列表的每个成员分配一个新数组。将new double[3]
放入循环中。对象创建应该在循环中,而不是在对象创建中。标记列表不应该重复创建。