java - ArrayList 索引始终为 0(零)

标签 java arraylist

我在 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/

相关文章:

java - 元素在 XPath Checker 中找到,但在 Selenium 中找不到

java - String[] 常量自动排序?如何保持索引顺序?

java - 大小和长度方法之间的区别?

java - 运行 ArrayList<checkbox> 时抛出空指针异常

java - Arraylist IndexOutOfBounds 调试错误

java - 如何为 ArrayList 中的相应数据赋值

java - 使用 junit 5 测试预期的异常消息

java - 在Java中使用RSA公钥文件加密AES key

java - 在 Spring Boot 中进行 JDBC 身份验证时,是否必须使用默认的 'users' 表?

java - 调用方法Java