我在 Java 中遇到了 ArrayList 的问题。 问题是,当我向列表(pointStorer)添加一个元素时,索引不会增加,并且每次它都会重置并保持为零。 这是我的代码(这只是代码的重要部分):
private ArrayList pointStorer = new ArrayList();
private Point pointValues = new Point();
public void mouseClicked(MouseEvent e) {
pointValues.setLocation(e.getX(), e.getY());
mousePointX = pointValues.x;
mousePointY = pointValues.y;
repaint();
}
public void paint(Graphics g){
pointStorer.add(pointValues);
System.out.println("Index point "+pointStorer.indexOf(pointValues));
}
我使用 .indexOf 方法来知道我刚刚添加的元素的索引是什么,但它始终为零。
预先感谢您的帮助。
最佳答案
您只有一个 Point
实例,您不断将其添加到 ArrayList,因此 ArrayList 的所有索引都包含相同的 Point
。
要在每次单击鼠标时添加新的 Point
,您应该创建一个新的 Point
实例:
public void mouseClicked(MouseEvent e) {
Point pointValues = new Point();
pointValues.setLocation(e.getX(), e.getY());
mousePointX = pointValues.x;
mousePointY = pointValues.y;
repaint();
}
关于java - ArrayList 索引始终为 0(零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37422093/