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的问题 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 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