在迭代 Java ArrayList 时修改它

2024-01-22

我想做类似的事情this https://stackoverflow.com/questions/993025/java-adding-elements-to-a-collection-during-iteration

但是,我不希望迭代添加的元素。基本上我有一个底层数组列表,并且我在数组列表上返回一个迭代器。在使用该迭代器进行迭代时,我想将元素添加到原始数组列表中。我该怎么做呢?

编辑:问题是我需要迭代器中的对象由迭代代码修改。我不认为克隆数组列表会起作用......

EDIT2:这是我的代码的精简版本。

public class Map {
     // a bunch of code
     private ArrayList<Robot> robots;

     public Iterator<Robot> getRobots() {
          return robots.iterator();
     }

     public void buildNewRobot(params) {
          if(bunchOfConditions)
                robots.add(new Robot(otherParams);
     }

     // a bunch more code
}

这是另一个类中使用的地图。

for(Iterator<Robot> it = map.iterator(); it.hasNext();){
   Robot r = it.next();
   // a bunch of stuff here
   // some of this code modifies Robot r 

   if(condition)
       map.buildNewRobot(params);
}

您可以创建列表的副本并迭代该副本并向旧列表添加数据。问题是您不会迭代新的 itens。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在迭代 Java ArrayList 时修改它 的相关文章

随机推荐

  • Windows上使用R将本地repo推送到github

    我曾经问过一个很类似的问题 https stackoverflow com questions 14912161 repo from rstudio to github并得到了从命令行有效的响应 但我现在想使用 R 从 Windows 自动
  • ASP.NET MVC 中的 RSS 源

    您建议如何在 ASP NET MVC 中处理 RSS 源 使用第三方库 在 BCL 中使用 RSS 内容 只是制作一个呈现 XML 的 RSS 视图 或者完全不同的东西 NET 框架公开了处理聚合的类 SyndicateFeed 等 因此
  • 如何在 iPad 中使用图像选择器?

    我知道如何在 iPhone 中使用图像选择器 虽然知道需要在 iPad 中使用新类 UIPopoverController 但仍然无法找出一种在 iPad 中使用图像选择器的方法 有人有同样的问题吗 谢谢 UIImagePickerCont
  • 使用 Groovy MarkupBuilder 的 HTML,如何优雅地混合标签和文本?

    使用 Groovy 时MarkupBuilder 我有需要将文本输出到文档中的地方 或者调用将文本输出到文档中的函数 目前 我正在使用未定义的标签 text 进行输出 有更好的方法来编写这段代码吗 li text type getAlias
  • 自动续订订阅:一个月有多长?

    我对一些问题感到困惑 1 自动续费订阅的一个月期限是30天还是按照自然月 因为我只能在沙盒模式下测试 所以持续时间只有几分钟 也许苹果只是简单地这样计算 2013 01 15 gt 2013 02 15 gt 2013 03 15 如果是这
  • r 在 for 循环中创建并寻址变量

    我在一个文件夹中有多个 csv 文件 我想将此文件夹中的每个 csv 文件加载到一个单独的数据框中 接下来 我想从该数据框中提取某些元素到一个矩阵中 并计算所有这些矩阵的平均值 setwd D data group 1 lt list fi
  • CMDeviceMotion 用户加速度漂移

    我正在使用以下方法获取加速度数据 CMDeviceMotion userAcceleration 我注意到一件有趣的事情 Z 轴上总是有一个小偏差 约为 0 0155 方差为 0 002 而在其他轴上 平均值接近 0 我正在使用 iPod
  • 查看 IsEnabled 属性在 Xamarin Forms 上不起作用

    这是我的列表视图 Listview 内部按钮 IsEnabled 属性不起作用 IsEnabled False 不起作用 我遵循了此步骤 但仍然不起作用https forums xamarin com discussion 47857 se
  • 寻找一个Linux PDF库来从PDF中提取注释和图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个免费的库 Java Ruby 它可以在linux上运行 并且可以从PDF中提取图像和注释
  • 从文件流上传到 ADLS

    我正在 ADF 中进行自定义活动 其中涉及从 Azure 存储 Blob 读取多个文件 对它们进行一些处理 最后将生成的文件写入 Azure Data Lake Store 最后一步是我停止的地方 因为据我所知 NET SDK 只允许从本地
  • .NET 应用程序中的最大线程数?

    在 C 应用程序中可以创建的最大线程数是多少 当达到这个限制时会发生什么 是否抛出某种异常 没有固有的限制 最大线程数由可用物理资源量确定 看到这个文章作者 雷蒙德 陈 https devblogs microsoft com oldnew
  • 使用 JavaMail 创建带有附件的 EML 文件 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我将使用
  • 如何在发布模式下启用框架的可测试性?

    我有一个 iOS 应用程序项目 由 Swift 3 0 编写 该工作区包含我们团队构建的动态框架 用于在整个项目中共享可重用的代码和资源 We use Activate Compilation Conditions用于切换生产服务器 url
  • PhpMyAdmin |致命错误:第 0 行未知中允许的内存大小 134217728 字节已耗尽(尝试分配 xxxxxx 字节)

    我试图找到此错误的原因 但失败了 我已经在我的服务器上安装了 PhpMyAdmin 现在在每个页面的页脚上都收到此错误 致命错误 第 0 行未知中允许的内存大小 134217728 字节已耗尽 尝试分配 10934248 字节 正如您所看到
  • “命令”对象没有属性“has_permissions”

    client command commands has permissions administrator True async def kick ctx member discord Member reason None try awai
  • IdentityServer、声明和角色

    我正在使用 Identity Server v4 但我认为与 v3 相同 和 NET Core 现在我有一个我不明白的奇怪问题 在我的 MVC 应用程序中 我使用 授权 角色 极客 保护我的控制器 操作 从以下位置查看当前用户HttpCon
  • 在android中为按钮添加阴影

    我试图在单击时在图像按钮上添加某种阴影 是否可能以及如何实现 所以我有按钮 我希望当我点击它时它看起来像是被按下的 所以我创建了新的 xml 如下所示
  • 如何在 Next JS 博客中实现上一篇文章和下一篇文章?

    我想从特定的博客文章转到上一篇文章和下一篇文章 考虑一下这个盖茨比的例子 https gatsby starter blog demo netlify com my second post https gatsby starter blog
  • 如何停止 Android webView swipeToRefresh 加载进度条?

    注意 这个问题已经被问过here https stackoverflow com questions 41467855 how to stop swipetorefresh progressbar in webview没有得到任何答案 所以
  • 在迭代 Java ArrayList 时修改它

    我想做类似的事情this https stackoverflow com questions 993025 java adding elements to a collection during iteration 但是 我不希望迭代添加的