我在正确添加 ArrayList 时遇到问题。当我在 for 循环完成后打印 ArrayList 时,ArrayList 的长度是正确的,但每个元素都是相同的(创建的最后一个坐标)。
有人可以修复(并解释)下面的代码吗?
public class test {
private static ArrayList<Coordinate> mOrigCoords;
private static ArrayList<Coordinate> mNewCoords;
private static int mListSize;
private static int mPixelsX;
public static void main(String[] args)
{
mOrigCoords = new ArrayList<Coordinate>();
mNewCoords = new ArrayList<Coordinate>();
mPixelsX = 480;
int j = 0;
Coordinate newCoord = new Coordinate(0,0);
for(int i = 0; i < 96; i++)
{
j = j + 5;
newCoord.setX(j);
newCoord.setY((int)(Math.random()*300));
mOrigCoords.add(newCoord);
}
mListSize = mOrigCoords.size();
for(int n = 0; n < mListSize; n++)
{
System.out.println("test " + mOrigCoords.get(n).toString());
}
}
}
先谢谢您的帮助!
代替
Coordinate newCoord = new Coordinate(0,0);
for(int i = 0; i < 96; i++)
{
j = j + 5;
newCoord.setX(j);
newCoord.setY((int)(Math.random()*300));
mOrigCoords.add(newCoord);
}
你应该有
Coordinate newCoord = null;
for(int i = 0; i < 96; i++)
{
newCoord = new Coordinate(0,0);
j = j + 5;
newCoord.setX(j);
newCoord.setY((int)(Math.random()*300));
mOrigCoords.add(newCoord);
}
这样,arrayList 将保存许多对象,而不是只保存一个。 ArrayList 中的所有元素都指向同一个对象,这就是问题的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)