尝试使用列表迭代器删除对象

2024-03-10

我正在尝试使用列表迭代器从列表中删除对象。我已经浏览了网站上的其他解决方案,但没有一个解决方案可以缓解错误“线程“main”java.util.ConcurrentModificationException 中的异常”

这是我未执行的代码:

void PatronReturn(String bookName) {
//       get to beginning
    while(listIterator.hasPrevious()) {
        listIterator.previous();
    }
    while(listIterator.hasNext()){
        Book b = listIterator.next();
    if (listIterator.next().getBookTitle().equals(bookName)) { 
        //listIterator.next();
        //listIterator.remove();
        books.remove(b);
        //listIterator.next(); //moves to next so iterator can remove previous ?
        //books.remove(listIterator.next());; // TODO see if this is correct

    }
    }

  1. 不要直接从列表中删除项目。使用remove()迭代器中的方法。

  2. 您的代码也存在缺陷,因为它假设还有其他列表项:

    while(listIterator.hasNext()){
        Book b = listIterator.next();
        if (listIterator.next().getBookTitle().equals(bookName)) { 
          // eek
    

    在这里你打电话next()两次,但你只打过电话hasNext一次。也许你的意思是:

    while(listIterator.hasNext()){
        Book b = listIterator.next();
        if (b.getBookTitle().equals(bookName)) { 
          // ...
    
  3. 最后,您可以替换:

    while(listIterator.hasPrevious()) {
        listIterator.previous();
    }
    

    with

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

尝试使用列表迭代器删除对象 的相关文章

  • 谁能解释一下 servlet 映射吗?

    我正在尝试使用 SpringMVC 编写一个 Web 应用程序 通常我只是将一些虚构的文件扩展名映射到 Spring 的前端控制器并快乐地生活 但这次我要使用类似 REST 的 URL 没有文件扩展名 将我的上下文路径下的所有内容映射到前端
  • Selenium webdriver :列表不是通用的;它不能使用参数 `` 类型进行参数化

    我试图将链接存储在列表中 请按照以下代码操作 public class frameswitch public static void main String args System setProperty webdriver gecko d
  • Java 弱哈希映射 - 需要根据值的弱点而不是键来删除条目

    所以JavaWeakHashMap让我们创建一个映射 如果其键变弱 则删除该映射的条目 但是我怎样才能创建一个Map 当它的条目被删除时values地图上变弱了 我想使用映射的原因是作为全局哈希表 它根据对象的 ID 跟踪对象 ID gt
  • 如何在流中收集到TreeMap中?

    我有两个Collectors groupingBy在流中 我需要收集所有信息TreeMap 我的代码 Map
  • 如何检查字符串是否具有特定模式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 用户输入任意字符串 程序会区分该字符
  • Selenium - 保存网站,包括所有图像、css、dom

    我想使用 firefox 或 chrome 访问带有 selenium 的页面 当页面加载时 我想从页面下载所有图像 css dom 我想存储每张图像 就像我在其中找到它们一样 chrome gt Tools gt Development
  • 黄瓜与 Micronaut

    我正在尝试将 Cucumber 与 Micronaut 一起使用 但当我尝试将其与 Cucumber 一起使用时 MicronautTest 注释根本不起作用 未注入 theApple 请参阅下面的代码 如果我在没有黄瓜的情况下运行它就可以
  • GSON:自定义对象反序列化

    好吧 我编辑了这个问题 因为它不够清楚 Edit 2 更新了 JSON 文件 我在 Android 应用程序中使用 GSON 我需要解析来自服务器的 JSON 文件 而且有点太复杂了 我不想让我的对象结构太重 所以我想简化内容 所以我的对象
  • 如何在 Java 中安装附加包?

    我对 Java 很陌生 我想使用名为的包中的一些功能daj 教程代码有以下几行 import daj import java util import java lang Math import Msg 但第一行和第四行会产生红色下划线 导致
  • PrintStream是有缓冲的,但是flush不会降低性能,而BufferedOutputStream会加速性能

    我预计由于 PrintStream 是缓冲的 通过在每次 print 之后添加刷新操作 速度性能应该会显着降低 但事实并非如此 如下面的代码片段所示 此外 将 PrintStream 包裹在 BufferedOutputStream 周围可
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • 在 JSP 中对表单操作使用相对路径

    如何在表单操作中使用相对路径
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • Java - 同步方法导致程序大幅减慢

    我正在尝试了解线程和同步 我做了这个测试程序 public class Test static List
  • 在 javafx 中注册鼠标处理程序,但处理程序不是内联的

    我有一个 JavaFX 应用程序变得有点大 我想保持代码的可读性 我有一个折线图 我希望内置缩放功能 该功能在单击鼠标时发生 我知道我需要向图表注册鼠标侦听器 我无法从 Oracle 示例中弄清楚什么 即如下所示 http docs ora
  • kafka Avro 多个主题的消息反序列化器

    我正在尝试以 avro 格式反序列化 kafka 消息 我使用以下代码 https github com ivangfr springboot kafka debezium ksql blob master kafka research c
  • 如何在 Spring Boot 中创建 Apache POI Excel 视图配置

    当我想使用 Spring Boot Web 将数据导出到 Excel 时遇到问题 我使用 Thymeleaf 作为模板引擎 由 Spring Boot 自动配置 但是当我在附加配置中添加 XmlViewResolver 时 由 XmlVie
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • 有时 Properties.load() 会跳过行

    在以下情况下 Properties load 会跳过 InputStream 的第二行 这是 Java 的错误还是正常行为 public class PropTest public static void main String args
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS

随机推荐

  • 使用twitter api获取token

    我正在尝试使用 twitter api 但需要获得身份验证 有2种类型 我只需要Application only authentication aka app only 这是应用程序代表自己发出 API 请求的身份验证类型 文档解释说要使用
  • mysql从两个表和不同结构中选择数据

    你好 我正在用 php mysql 建立一种议程 网站 该议程包含按日期排序的公共事件和用户个人笔记 我需要加载数据库中事件表中的所有事件以及注释表中的注释 但这两个表具有完全不同的结构 并且它们只有一个相同的字段 DATETIME 那么我
  • 如何更改golang中的指针切片

    我正在尝试更好地理解 go 我为自己创建了一个小练习 将指针切片传递给函数并修改它 这就是我想出的 package main import fmt unsafe func main var data byte fillData data f
  • 从哪里开始使用 C# 和 Dreamweaver 中的 ASP.net?

    我希望开始使用 C 开发个人网站 我是一名 Web 开发人员 以前使用过 VBScript 现在在工作中使用 Coldfusion 我使用 Dreamweaver 进行这些语言的开发 我读过很多人建议您应该使用 MS IDE 在 net 中
  • 如何在 Angular 中包含材质图标库?

    我参考这个链接问题 2662 https github com angular angular cli issues 2662为此 我添加CSSangular json and import library instyle css它给出了如
  • 如何在`mock.Mock().call_args`中获取`self`实例?

    在修补虚拟类时 我观察到不一致的行为 class A def f self args kwargs pass 如果我手动修补该功能 call args list def mock fn args kwargs call args list
  • 是否应该在 using 语句中使用 WebClient?

    如果 HttpClient 不应该用于using声明 请参阅以下链接 https aspnetmonsters com 2016 08 2016 08 27 httpclientwrong https aspnetmonsters com
  • Google 云视觉 Web 检测 API 仅返回 10 个响应

    我正在使用 Google 云视觉 Web 检测 API 来检测图像的使用位置 但即使是 Google 的徽标 我也总是最多收到 10 个回复 是 API 的限制还是我遗漏了一些东西 因为文档中没有提到任何内容 Cloud Vision AP
  • ffprobe 显示 h264 流的比特率为 0.0 或 N/A

    我有一个 11 分钟的 mkv 文件 带有 h264 视频流 占用 184MB 空间 我想减小这个文件的大小 我想我可以降低比特率 但 ffprobe 不输出任何内容 事实上 它说文件的长度是根据比特率计算的 因此可能不准确 但摘要或 FO
  • 禁止“尝试新的跨平台 PowerShell https://aka.ms/pscore6”

    我不介意一点微软的营销 但是当我只想要一个干净的 PowerShell 提示符时 这很烦人 有没有人找到一种方法来抑制Try the new cross platform PowerShell https aka ms pscore6打开
  • jQuery masonry 如何调用layoutComplete

    我有以下功能 namespace utils pageReorder feed function console log complete do some stuff here no reorder has completed pageRe
  • 使用 CSS 旋转元素后使用高度/宽度 100%

    我有一个想要旋转的元素 视频 然后使用 100 宽度和高度 在应用旋转之前 视频占据 100 的宽度和高度 旋转后 尺寸似乎与旋转之前保持相同 我想重新应用宽度和高度 100 以使视频适应新状态 目标是尝试以横向方式呈现视频 即使 div
  • 如何绘制 Wolfram Alpha 网格? [MATLAB]

    我想绘制这个网格的任何函数 这是 f z gt 1 z 的特殊情况 这是您可以在 Wolfram alpha 上找到的典型图表 尽管如此 我不知道如何继续 这个想法是看看应用 f 后 1 平方的复杂网格的线被发送到哪里 一件很棒的事情是在网
  • bash 脚本中查找函数的结果出现问题

    我的 bash 脚本有问题 我的 for 函数使用 find 函数的结果 长话短说 在 SSH 中 find 函数返回 2 个结果 而在 bash 脚本中返回单个结果 我尝试了以下两个代码 for f in find path name p
  • 在 URL 查询字符串中使用方括号的数组语法是否有效?

    在 URL 查询字符串中使用多维数组语法实际上安全 有效吗 http example com abc 123 abc 456 它似乎适用于每个浏览器 我一直认为它可以使用 但根据本文中的评论 事实并非如此 http www 456berea
  • GetWindowRect 坐标不与屏幕相关

    我正在使用 Visual Studio 2008 C 工作 我有一个 MFC 对话框 里面有一个控件 我正在尝试在控件中放置另一个对话框 第二个对话框上的 SetWindowPos 显然使用屏幕坐标 因此我需要获取控件或父对话框的屏幕坐标
  • 被指令包装后,我如何访问它的范围?

    如何在指令主体中访问指令的隔离范围 我的 DOM 看起来像这样 div div
  • UICollectionView 中的单元格间距

    如何设置某个部分的单元格间距UICollectionView 我知道有一个房产minimumInteritemSpacing我已经将其设置为 5 0 但间距并未出现 5 0 我已经实现了流出委托方法 CGFloat collectionVi
  • 如何在 PHP 中将 UTF-16 十六进制字符串转换为 UTF-8?

    我有来自 strace 的以下输出 我想使用 PHP 将其转换为 UTF 8 R 00f6dhakev 00e4gen 4 R 00e4ntm 00e4starv 00e4gen 24 K 00d8BENHAVN 我认为上面的字符串是 UT
  • 尝试使用列表迭代器删除对象

    我正在尝试使用列表迭代器从列表中删除对象 我已经浏览了网站上的其他解决方案 但没有一个解决方案可以缓解错误 线程 main java util ConcurrentModificationException 中的异常 这是我未执行的代码 v