jee*_*wat 3 java android arraylist
在数组列表中,使用时添加新变量
pointList.add(i , coord);
Run Code Online (Sandbox Code Playgroud)
添加新变量,并用新值替换现有值.如何阻止这些替换变量?
for(int i=0;i<coordinateArray.length();i++)
{
brokenArray= coordinateArray.getJSONObject(i);
x=brokenArray.getInt("x");
y=brokenArray.getInt("y");
Log.d("x", " "+i+ " "+x );
Log.d("y", " "+i+ " "+y );
coord.set(x, y);
pointList.add(i , coord);
Log.d("pointList", pointList.toString());
}
Run Code Online (Sandbox Code Playgroud)
根据您提供的代码,您coord.set(x, y)
每次都使用相同的对象.将对象添加到a List
不会复制它.
Java按值传递引用,而不是按值传递对象; 在调用时pointList.add(i, coord)
,您要将coord
对象的引用添加到列表中,而不是coord
对象的新副本.
相反,你必须创建一个新的Point
或Coordinates
或通过每一次循环中的任何对象.你不能coord
像在这里那样重复使用对象.
归档时间: |
|
查看次数: |
248 次 |
最近记录: |