Java中ArrayList的问题

2024-01-02

我在正确添加 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(使用前将#替换为@)

Java中ArrayList的问题 的相关文章

随机推荐

  • Docker 容器构建失败:“exec:\”flask\”:在 $PATH 中找不到可执行文件”:未知

    我正在学习码头工人 我尝试在 docker com 上运行示例 dockerfile 但我有一个问题是 守护进程的错误响应 OCI 运行时创建失败 container linux go 345 启动容器进程导致 exec flask 在 P
  • 如果文件已重命名,如何查找文件扩展名?

    如果文件已重命名 如何查找文件扩展名 有没有可用的工具 示例 我有一个文件 1 doc 我希望大家知道这是一个我刚刚重命名为 1 txt 的Word文档 但该文件原本是Word文档 如何获得原始文件扩展名 您无法恢复以前的文件扩展名 您所能
  • 通过流下载 azure blob - 出口 137

    我正在尝试通过 Azure python sdk get blob to stream 下载大文件 但是 我的程序不断退出 返回代码为 137 这似乎与内存不足有关 我可以在顶部看到 python 正在消耗越来越多的内存 直到它被杀死 Co
  • 为 AWS APIGateway 创建 VPC 链接时出现“NLB ARN 格式错误”

    我按照教程创建了一个指向我的私有 elb 平衡器的 VPC 链接 https docs aws amazon com apigateway latest developerguide set up api with vpclink cli
  • 验证是否所有复选框均未选中的快速方法?

    如果取消选择所有复选框 是否有一种快速方法或功能可以告诉我真 假 不通过数组 使用 JS 和 HTML 我所有的复选框都有相同的名称
  • “respond_to do |格式|”抛出 UnknownFormat 错误

    我正在尝试使用 ajax 从控制器渲染 js 文件 这个确切的代码以前总是有效的 甚至在其他方法中也有效 但我突然开始收到此错误 ActionController UnknownFormat in MoviesController vote
  • jQuery 选择框 .val('') 行为从 1.9 到 1.10+ 不同,最短的方法是什么[重复]

    这个问题在这里已经有答案了 jQuery 1 9 和 1 10 之间的以下行为有所不同
  • 局部变量的 MAXRECURSION 值

    我正在 SQL Server 2005 中编写一个存储过程 它声明一个名为 CTE 公用表表达式 foo foo递归地调用自身 但当 SP 的参数之一 bar 一片空白 为了停止这个无限循环 我一直在尝试使用该选项MAXRECURSION
  • 使用 JavaScript 从 Dropbox 下载文件

    I have 我有一个网站正在尝试向客户提供一项服务 以便能够从 Dropbox 下载文件 为了简化开发 我使用Dropbox 选择器 https www dropbox com developers chooser 为此 我启用了我希望从
  • 如何添加元组

    我有这样的伪代码 if b lt a return 1 0 foo a b b 我想用Python写它 但是Python可以添加元组吗 编写类似代码的最佳方法是什么 我会去 gt gt gt map sum zip 1 2 3 4 4 6
  • Clojure / Incanter 中的快速矢量数学

    我目前正在研究 Clojure 和 Incanter 作为 R 的替代品 并不是说我不喜欢 R 而是尝试新语言很有趣 我喜欢 Incanter 并且发现语法很有吸引力 但相比之下 矢量化操作相当慢例如到 R 或 Python 作为一个例子
  • 适合7岁孩子的环境[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • OpenCV 尝试使用 RELEASE 构建读取视频时崩溃

    Using VideoCapture vcc someDir someFile avi 作为我的代码 OpenCV 2 x Win7 VS2010 中的第一行 RELEASE 的执行崩溃了 但 DEBUG 工作正常 尽管慢如预期 仅当尝试读
  • 如何在 C# 中使用多个变量来锁定作用域

    我遇到的情况是 只有两个储物柜对象空闲时才应执行代码块 我希望会有类似的东西 lock a b this scope is in critical region 然而 似乎并没有这样的事情 那么这是否意味着做到这一点的唯一方法是 lock
  • MySQL 排列现有表列

    如何更改某个现有列的位置MySQL table 例如 我想移动该列username从其当前位置改为位于所有列之后 或者我希望它位于表中任何特定列之前 如果您愿意 可以更改列的顺序 如果您的用户名列是 varchar 255 那么 alter
  • Jenkins 作业终止后清理孤立的 docker 容器

    我在一个大型组织工作 该组织在共享 Jenkins 集群中运行数百个作业 我的 Jenkins 工作需要针对 Docker 容器内运行的不受信任的代码运行集成测试 我担心当我的 Jenkins 工作突然终止 例如工作中止或超时 时 我将留下
  • 为什么会话变量为空以导航下一页?

    我一直在工作一个网站 我已经处理了一段时间的问题 现在我知道为什么会发生这种情况 但不知道如何解决它 请帮忙 第 1 页 在第一页登录页面设置 SESSION user id 存储在数据库用户 ID 中获取的值 在同一页面中可以打印会话并且
  • 使用“location.href”取消页面卸载时出现“未知异常”

    我使用以下代码捕获 window onbeforeunload 事件 window onbeforeunload function evt if checkIsDirty var message If you continue your c
  • 通过单击按钮增加条形图值

    我正在尝试创建一个图表来显示锻炼的进度 每点击五个按钮就应在图表中添加一个勾号 这是其外观的示例 出于演示目的 我使用按钮单击 在生产中 轮子每转二十圈就会单击一次 private int counter 0 private void bu
  • Java中ArrayList的问题

    我在正确添加 ArrayList 时遇到问题 当我在 for 循环完成后打印 ArrayList 时 ArrayList 的长度是正确的 但每个元素都是相同的 创建的最后一个坐标 有人可以修复 并解释 下面的代码吗 public class