Java枚举和迭代器的区别

2023-12-07

这两个接口的具体区别是什么?做Enumeration比使用有好处Iterator?如果有人能详细说明,参考文章将不胜感激。


查看 Java API 规范Iterator界面上,有关于之间差异的解释Enumeration:

迭代器不同于 枚举有两种方式:

  • 迭代器允许调用者从底层删除元素 迭代期间的集合 明确定义的语义。
  • 方法名称已得到改进。

底线是,两者Enumeration and Iterator将给出连续的元素,但是Iterator通过缩短措辞改进了方法名称,并且它还有一个额外的功能remove方法。这是并排比较:

  Enumeration                     Iterator
  ----------------                ----------------
  hasMoreElements()               hasNext()
  nextElement()                   next()
  N/A                             remove()

正如 Java API 规范中提到的,对于较新的程序,Iterator应该优先于Enumeration,因为“迭代器取代了 Java 集合框架中的枚举”。 (来自Iterator规格。)

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

Java枚举和迭代器的区别 的相关文章

随机推荐

  • JAI:如何从多页 TIFF 图像容器中提取单页输入流?

    我有一个将 PDF 文档转换为图像的组件 每页一张图像 由于该组件使用转换器生成内存中图像 因此它会对 JVM 堆造成严重影响 并且需要一些时间才能完成转换 我正在尝试提高转换过程的整体性能 并找到了一个具有 JNI 绑定的本机库来将 PD
  • jQuery CSS 悬停

    我有一个 CSS 菜单 当鼠标悬停在它上面时设置父 li 的颜色 它是子 ul 子菜单 基本上 当您将鼠标悬停在菜单上时 它会改变颜色并保持这种状态 直到您将鼠标移开菜单及其子菜单 看起来很好 我添加了一些 jQuery 代码来更改菜单项的
  • 如何让一个视图知道另一个视图的变化?

    假设您正在制作一个音乐库应用程序 您有一个包含流派列表的视图 另一个显示所选流派的内容 当用户单击列表上的流派时 其他视图中的内容应相应更新 为了最大限度地减少依赖性 最好的方法是什么 除了绘制各个流派的视图之外 我还没有找到任何其他地方可
  • Java数组的克隆方法

    Java 中的 clone 方法在数组上使用时到底返回什么 它是否返回一个新数组 其中包含从原始数组复制的数据 Ex int a 1 2 3 int b a clone 当 的时候clone方法在数组上调用 它返回对新数组的引用 该新数组包
  • 如何找到 PIE 二进制文件的加载重定位?

    我需要获取正在运行的进程中堆栈的基地址 这将使我能够打印 addr2line 可以理解的原始堆栈跟踪 运行的二进制文件被剥离 但 addr2line 可以访问符号 我设法通过检查 elf header 来做到这一点argv 0 我读取入口点
  • Rails 进程的互斥体

    通过 Passenger 或 Mongrel 部署 Rails 时 您会运行多个应用程序实例 在共享资源上建立互斥锁的最佳实践或模式是什么 例如写入本地文件或远程文件 我想确保两个进程不会同时写入同一资源 如果您只是需要防止多个编写者同时处
  • ASP.NET 中的带宽监控

    您好 我们正在 Asp Net 中开发一个多租户应用程序 每个租户都有单独的数据库 其中要求之一是监视每个租户的带宽使用情况 我尝试搜索 但没有找到有关该主题的太多帮助 我们希望准确监控每个租户使用了多少带宽 而每个租户可以拥有自己的顶级域
  • 在循环/foreach MVC 视图中动态生成表

    我现在正在编写一些非常糟糕的代码 在保存之前 我希望得到一些关于改进它的意见 我正在尝试构建一个每行三个单元格的 html 表格 如果集合有 5 个项目 则应呈现为两行 到目前为止我所写的代码不是很健壮 需要不断维护 但我不确定是否有其他工
  • PHP 脚本未在浏览器上运行

    我已经在我的系统上安装了 XAMPP 服务器以便能够使用 PHP 但是安装后 当我在浏览器上运行任何 php 脚本时 它不会运行 我没有看到任何输出 没有从本地主机检查 phpinfo 我看到版本 5 3 5 已安装 即使运行一个简单的 p
  • 正则表达式如何在任何地方排除特定字符或字符串[重复]

    这个问题在这里已经有答案了 the cat sat on the mat 假设这些是不同的条目 从您要搜索的内容中的任何位置排除特定字符 在本例中为 a 的正则表达式是什么 所以你会得到的点击是 the on the 或者如果它是一个单词
  • 在请求中传递标头的效果?

    我想知道当你传递标题时会有什么不同requests get即之间的差异requests get url headers and requests get url 我有这两段代码 from lxml import html from lxml
  • 我的 Spring Security 应用程序不会超出登录页面

    我刚刚启动了一个使用 Spring Security 进行身份验证的项目 该项目使用 Java 配置而不是 XML 这是我的 SecurityConfig java 类 Configuration EnableWebSecurity pub
  • 将 .txt 文件中的双精度数读入双精度数组 C++

    我正在尝试创建一个需要大量股票价格的程序 我将这些价格存储在 txt 文件中 每行一个双精度 数量未知 可能有数千 我无法将数据放入我可以操作的数组中 我已经几个小时无法解决这个问题了 每当我尝试从文件中读取数据然后将其转换为双精度时 我都
  • 使用 babel ES6 创建注释

    我实际上正在使用 babeljs 和 ES6 带有 js 文件 开发一个应用程序 我想知道是否可以创建注释 就像我们可以使用 typescript 一样 使用 babeljs 和 ES6 JavaScript 没有与 TypeScript
  • 来自用户输入的Python调用函数[重复]

    这个问题在这里已经有答案了 可以根据用户输入调用函数吗 像这样的东西 def testfunction function function a raw input fill in function name testfunction a 因
  • 如何确认多个 AJAX 调用已完成?

    document ready function list1 jqGrid url example1 php balabala gridComplete function list2 jqGrid url example2 php balab
  • 如何在 JMeter 中将变量从一个线程组传递到另一个线程组

    我有一个包含 2 个线程组的 JMeter 测试 第一个是单个线程 创建一些库存 第二个有多个线程 购买所有库存 我使用 BeanShell Assertions 和 XPath Extractors 来解析返回值 XML 并存储变量 例如
  • 删除 datagridview 标题中的排序箭头并将文本放在框的中心

    我正在开发一个项目 需要标题文本位于中心 当单击标题时它将进行排序 但问题是 有一个排序箭头图标 即使它没有显示 它也会将文本推到左侧 我想要实现的是 删除排序箭头并将文本置于中心但仍保留排序功能 p s 我尝试处理单元格事件绘制并重新绘制
  • 替换字符串中特定索引处的字符?

    我正在尝试替换字符串中特定索引处的字符 我正在做的是 String myName domanokz myName charAt 4 x 这会产生错误 有什么方法可以做到这一点吗 Java 中的字符串是不可变的 你无法改变它们 您需要创建一个
  • Java枚举和迭代器的区别

    这两个接口的具体区别是什么 做Enumeration比使用有好处Iterator 如果有人能详细说明 参考文章将不胜感激 查看 Java API 规范Iterator界面上 有关于之间差异的解释Enumeration 迭代器不同于 枚举有两