迭代并从地图中删除[重复]

2024-01-03

我在做:

for (Object key : map.keySet())
    if (something)
        map.remove(key);

它引发了 ConcurrentModificationException,所以我将其更改为:

for (Object key : new ArrayList<Object>(map.keySet()))
    if (something)
        map.remove(key);

这个以及修改映射的任何其他过程都在同步块中。

有更好的解决方案吗?


以下是在 for 循环中使用迭代器删除条目的代码示例。

Map<String, String> map = new HashMap<String, String>() {
  {
    put("test", "test123");
    put("test2", "test456");
  }
};

for(Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext(); ) {
    Map.Entry<String, String> entry = it.next();
    if(entry.getKey().equals("test")) {
        it.remove();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迭代并从地图中删除[重复] 的相关文章

  • 我在使用 JavaFX 绘制十字时遇到问题

    我正在尝试编写代码 在网格上对角绘制 3 个形状 前两个形状是正方形和圆形 我能做到 然而 第三种形状让我有些悲伤 我应该画一个十字 T 版本 而不是 X 每次我写出代码时 它看起来就像一个侧面 我知道我只是错过了一些简单的东西 但我真的很
  • 检查从 arrayadapter 获取的复选框

    我有标题清单 CheckBox 我想控制默认检查哪一个 所以我试图获得正确的视图并检查它 但由于某种原因它不起作用 知道为什么吗 form checkbox item xml
  • 仅使用公钥在 HD 钱包中生成以太坊地址 (bitcoinj/web3j)

    我尝试为使用 bitcoinj 库实现的 HD 钱包密钥生成以太坊地址 但我感到困惑 DeterministicSeed seed new DeterministicSeed some seed code here null 1409478
  • 如何在JavaFX中有效地滚动和缩放大图像?

    作为图像处理应用程序的一部分 我需要创建具有缩放 滚动和矢量叠加功能的简单查看器模块 图像相当大 40000x20000 这使得 ImageView 上的操作变慢 缓冲等 在 JavaFX 中处理巨大图像时 改善用户体验的最佳选项是什么 我
  • 解析 (yyyy-MM-dd) 格式的字符串日期

    我有一个 2013 09 18 形式的字符串 我想将其转换为 java util Date 我正在做这个 SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd Date converted
  • 如何将完整的日期格式拆分为日期和时间?

    我有很多格式为我的示例所示的字符串 我必须解析它们 我正在尝试确定今天是哪根弦 我的问题是 时间快到了 我只需要比较那个日期 接下来我想检查时间是否在 after 和 before 的两个时间戳 HH mm ss 之间 但存在问题 日期几乎
  • Glassfish 4 - JDBC 领域

    Glassfish 4 中的密码加密算法和摘要算法有什么区别 因为Password加密算法不能为空 所以我使用了MD5 Encoding使用了Hex 摘要算法为空 因此默认为 SHA 256 但是 如果我使用 JAAS 制作一个简单的登录应
  • 有没有办法让Maven自动下载快照版本?

    所以我有一个项目依赖于另一个项目的快照版本 依赖关系是
  • NIO 直接缓冲区何时以及如何被释放?

    我有一个 C 库 需要一个临时缓冲区作为暂存空间 我正在考虑将直接字节缓冲区的地址传递给它 在最终释放缓冲区之前 是否允许虚拟机重新定位缓冲区 JNI 框架消失后 本机库将保留该指针 我的理解是 JNI 本地对象引用无法缓存 因为 VM 可
  • JTree ConvertValueToText 返回在更改时被截断

    我有一个自定义树实现convertValueToText 此实现取决于某些全局状态 如果返回的字符串比先前返回的字符串更长 实际上我认为更宽 因为以像素为单位触发它 则文本将被截断并用 填充 当重绘是由 取消 选择元素或某个元素引起时 情况
  • 在 java 8 下使用泛型出现类型错误,但在 java 7 下则不然

    我有一段代码可以在 java 7 下编译良好 但不能在 java 8 下编译 这是一个独立的重现示例 我已经采用了显示此问题的真实代码并删除了所有实现 import java util Iterator class ASTNode
  • Java ArrayList 和 HashMap 动态

    有人可以提供一个创建Java的例子吗ArrayList and HashMap在飞行中 所以而不是做一个add or put 实际上在类实例化时为数组 哈希提供种子数据 举个例子 类似于 PHP 的例子 array array 3 1 2
  • 不使用 length() 方法的字符串长度[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在不使用字符串的情况下找到字符串的长度length String类的方法 str toCharArray length应该管用 或者怎么
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd
  • 为什么replaceAll在这行代码中不起作用? [复制]

    这个问题在这里已经有答案了 String weatherLocation weatherLoc 1 toString weatherLocation replaceAll how weatherLocation replaceAll wea
  • 在 Apache Servicemix 4 中的 OSGi 包之间共享配置文件?

    有人能够在 SMX4 中的两个或多个捆绑包之间成功共享配置吗 我正在寻找的是这样的 有一个文件 SMX HOME etc myconfiguration cfg 使此配置 可用 以便使用 Spring dm 通过 OSGi 配置管理将其注入
  • Java DNSLookup MX 记录列表。类似于 MXToolBox

    我正在构建一个程序来列出域的所有 MX 记录 起初似乎工作正常 但与在线工具进行比较后http mxtoolbox com http mxtoolbox com 有些域程序无法获取 MX 记录 而 MXToolbox 可以 我不确定原因是什
  • 在Java内存管理中,“PS”代表什么?

    每当我看到 Java 中对内存的引用时 各种空格总是以 PS 为前缀 PS 是什么意思 它开始困扰我 到目前为止我唯一的猜测是 泳池空间 但这将是多余的 例子 PS伊甸园空间 PS 幸存者空间 PS 终身空间 老一代 PS Perm Gen
  • Eclipse 如何创建一个未解决编译问题的类?

    当我尝试使用 javac 编译此类时 出现编译错误并且未创建 Test class public class Test public static void main String args int x 1L lt this cannot
  • 没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。 -- Netbeans、Postgresql 8.4 和 Glassfish

    我正在尝试使用 EclipseLink 在 Glassfish 中使用 JPA 编辑 Postgresql 中的表 当我插入一个实体时 它运行良好 但是 当我尝试编辑或删除同一实体时 它失败并出现以下错误 任何想法 Caused by Ex

随机推荐

  • 如何根据动态改变背景颜色来动态改变文本颜色

    我正在建立一个新网站 需要我的文本根据不断变化的背景颜色改变颜色以保持对比度 我在网上搜索了不涉及 Sass 的答案 但没有一个有效 我尝试过一些 JavaScript 但它们仅在背景是您手动更改的固定颜色时才起作用 我当前的文件 http
  • ASP.NET 2.0 中的 Gridview 列宽度

    如何控制 ASP NET 2 0 中 gridview 控件的列宽 您可以使用 HeaderStyle Width ItemStyle Width 或 FooterStyle Width 属性 这些可以应用于所有列或每列
  • Typescript Jest 说我想要模拟的类型上不存在模拟或模拟返回值

    这是我想测试的一个类 Request js import axios AxiosInstance from axios import config from config const axiosSingleton AxiosInstance
  • 在 d3 中通过退出转换保持元素顺序 (selection.order)

    我将切入正题fiddle http jsfiddle net K6Yrw http jsfiddle net K6Yrw 点击第二个按钮快速查看效果 我在用着selection order因为我需要 DOM 元素以与数据元素相同的顺序存在
  • 乘客遇到库未加载错误:liblzma.5.dylib

    我正在尝试与乘客一起运行轨道 我安装了 AWS SDK 1 和 2 gem gem aws sdk v1 gem aws sdk gt 2 当我使用AWS sdk运行时 s3 AWS S3 new 我遇到错误 LoadError dlope
  • 使用 .htaccess 创建绝对路径的子域

    嘿 我的主人真是太糟糕了 由于某些奇怪的原因 在 cPanel 中创建子域根本不起作用 而且他们的支持热线总是很忙 我想我可以通过使用 htaccess 来解决这个问题 我确信这并不难 但我对 mod rewrite 有点陌生 并且在过去
  • Excel VBA 重新计算选择

    我有一些 Excel 电子表格对数据库的影响非常大 对总账表进行了 100 多次查询 哎呀 仅刷新我所在的工作表 SHIFT F9 在某些电子表格中很有帮助 但我想要一种仅刷新所选单元格的方法 我想出了以下代码 并将其放置在 ThisWor
  • 如何制作双向平台box2d主体?

    我使用 box2d 创建了平台 我想要 box2d 身体检测而不是动态检测 Box2d 形状将执行以下操作 在某些条件下检测碰撞 在某些情况下不检测碰撞 两种条件都适用于同一 box2d 对象中的不同条件 任何想法都会有很大帮助 提前致谢
  • nodejs firebase错误RangeError:超出最大调用堆栈大小失败

    我在 firebase 中遇到错误 FIREBASE 警告 用户回调引发异常 RangeError 超出最大调用堆栈大小 我没有发现我的错误 我在这里很迷失 请帮助 我的代码如下所示 app post updateCoords req re
  • 如何在perl中合并2个深度哈希

    我用 Perl 编写了一个 sub 来合并相同结构的 2 个哈希值 这样合并 a b a k1 gt sk1 gt v1 k2 gt sk3 gt v3 sk4 gt v4 b k1 gt sk2 gt v2 k3 gt sk5 gt v5
  • 谁以及何时分配 PCI/PCIe 设备 BAR 基地址?

    我正在寻找内核如何进行 PCI PCIe 枚举和 BAR 分配 我以为内核会在启动时分配BAR的PCI基地址 但是当我尝试pci Earlydump 在内核初始PCI子系统之前 查看BAR的值时 我发现所有基地址都已经分配了 这是否意味着
  • 在 redshift 中将 MM/DD/YYYY 转换为 YYYYMMDD

    我需要在亚马逊 Redshift 数据库中将 MM DD YYYY 转换为 YYYYMMDD 这个查询的结果给了我一些奇怪的结果 有人可以帮帮我吗 选择to date 07 17 2017 YYYYMMDD 0007 07 20 如果您只想
  • 为什么React项目名称不能包含大写字母?

    我在尝试在 React 中创建新项目 newRecipeApp 时收到以下消息 npx installed 91 in 29 359s Could not create a project called newRecipeApp becau
  • 是否可以指定TableRow的高度?

    我有一个TableLayout与多个TableRow里面的景色 我希望以编程方式指定行的高度 例如 int rowHeight calculateRowHeight TableLayout tableLayout new TableLayo
  • 如何在 VS 2008 中启用 DirectX 变量的更多调试信息?

    我能够启用 directX 变量 如 LPD3DXMESH 等 的调试信息 通常它只显示 IUnknown 和一些指针值 但如果启用了额外的调试 则可以查看有关该结构的更多详细信息 问题是我丢失了该项目 现在我不记得如何再次启用此类调试 请
  • 安装 JDK 和使用转储之间的区别

    全部 我想知道使用Oracle提供的安装程序安装JDK和使用安装后创建的JDK目录有什么区别 假设我使用 oracle 的安装程序在机器 M1 上安装了 JDK7u1 位置为 C Program Files Java JDK7u1 我可以将
  • 来自 Javascript 的 SOAP Web 服务调用

    我正在努力从网页成功地对 SOAP Web 服务进行 Web 服务调用 Web 服务是使用 JAX WS 的 Java Web 服务 这是我尝试调用的网络方法 WebMethod public String sayHi WebParam n
  • printf 和 vprintf 函数系列之间有什么区别,什么时候应该使用其中一个而不是另一个?

    我明白两者之间的区别printf fprintf sprintf等功能和vprintf vfprintf vsprintf等函数与它们如何处理函数参数有关 但具体如何呢 真的有理由使用其中一种而不是另一种吗 我应该总是使用printf因为这
  • 如何从运行的 tomcat 7 中获取堆转储

    我试过这个从 Tomcat 6 获取 JVM 上的堆转储 https stackoverflow com questions 18578710 get a heapdump on jvm from tomcat 6但它对我不起作用 还有其他
  • 迭代并从地图中删除[重复]

    这个问题在这里已经有答案了 我在做 for Object key map keySet if something map remove key 它引发了 ConcurrentModificationException 所以我将其更改为 fo