java 迭代器的原理_java里Iterator的原理

Iterator:迭代器。

其实就是集合取出元素的方式,每个容器的数据结构不一样,所以他们存取的方式不一样,具体事项方法不一样,具体实现方法不一样,每个集合都具备取出方式,对于取出这个动作不足以用一个函数来描述,需要用多个功能来体现,一般情况将多个功能封装到一个对象里面去,所以每个容器都有一个取出的对象,而且,因为数据结构不同,每个取出对象中实现的方式不一样,取出对象用一个类来描述,定义在了集合元素内部,直接操作元素,叫内部类,这个类完成取出元素的定义

这些内部类都符合一个规则,该规则是Iterator,如何获取集合的取出对象呢?通过一个对外提供的方法iterator()

理解迭代器一个生活中的例子:

电玩城里面的夹娃娃

玻璃大罐子就是个容器,里面的布娃娃就是元素,这些布娃娃都有不同的排列方式,取出娃娃,夹子就是迭代器,夹子定义在了容器内部,夹子就是取出方式,夹子是复杂事物,有异动、打开、闭合的方法,而且封装在了内部,不同电玩城的夹子样式不一样,但都具有相同的移动、打开、闭合方法,我们只能通过操作杆操作夹子对象,而iterator()就相当于操作杆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?

在java语言中,ab和aab的主要区别是在运算的精度上。类似的有“- 、 * 、/ 、% ”,这里以ab 与 aab 举例说明一下。1.下面是一串代码,我们试一下aab的形式:public class TestDemo {public static void main(String[] args) {byte a…

java程序回滚之后在哪看_Java在触发事务回滚之后为什么会再一次回到Servlet开始的地方重新走一次流程?...

代码流程前台点击"提交订单"进入BaseServlet.classBaseServlet.class分发至子类OrderServlet.class的submitOrder()方法submitOrder()调用Service层的submitOrder()方法.关键是Service层submitOrder()中使用了事务回滚. 这里调用了Dao层两个方法: fun01()和fun02(), …

java不进入for_为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?...

在阅读《阿里巴巴Java开发手册》时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下:错误演示我们首先在 IDEA 中编写一个在 foreach 循环里进行 remove 操作的代码:import java.util.ArrayList;i…

mysql对测试如何_我如何对MySQL进行基准测试?

我目前正在使用MySQL工作台.我希望看到表中行数增加时性能的差异.我想专门测试并比较1000行,10,000行,100,000行,1,000,000行和10,000,000行.那么,是否有任何工具可以让我这样做并提供有关磁盘I / O,内存使用情况,CPU使用率和完成查询的时间的统计信息?解决方法:是.…

JAVA两个视图层_MVC - 管理帐户 . 一个视图有两个局部视图和两个模型

美好的一天!我正在管理帐户页面上,用户可以在其中更改密码和电子邮件 .我有一个管理视图,其中有两个部分视图,更改密码和更改电子邮件 . 这两种都使用两种不同的模型 . 这样做的目的是在同一页面上同时包含更改密码和更改电子邮件…

8086汇编4位bcd码_二进制格雷码与自然二进制码的互换分析

在精确定位控制系统中,为了提高控制精度,准确测量控制对象的位置是十分重要的。目前,检测位置的办法有两种:其一是使用位置传感器,测量到的位移量由变送器经A/D转换成数字量送至系统进行进一步处理。此方法精度高&…

python datetime.datetime 当前_关于datetime:如何让python显示当前时间(东部)

如何让python在东方显示时间?我已经看过了Python文档,但它非常混乱。我使用的是python 3。谢谢。这可能有帮助:stackoverflow.com/questions/117514/…基本上,在内部使用UTC,并在显示时使用pytz转…

软件工程结构化建模的方法和工具_软件工程系列-结构化设计方法2

本系列文章为笔记,内容根据北京大学《软件工程》MOOC 初始化模块结构图精化的启发式规则常见的启发式规则什么叫做“启发式”根据设计准则,从长期的软件开发实践中,总结出来的规则既不是设计目标,也不是设计时应该普遍遵循的原理常…

java四种权限的高低_Java(四种权限修饰符)

/*Java中有四种权限修饰符:public > protected > (default) > private同一个类(我自己) YES YES YES YES同一个包(我邻居) YES YES YES NO不同包子类(我儿子) YES YES NO NO不同包非子类(陌生人) YES NO NO NO注意事项:(default)并不是关键字“…

安全扫描失败无法上传_Apache Solr 未授权上传(RCE)漏洞的原理分析与验证

漏洞简介Apache Solr 发布公告,旧版本的ConfigSet API 中存在未授权上传漏洞风险,被利用可能导致 RCE (远程代码执行)。受影响的版本:Apache Solr6.6.0 -6.6.5Apache Solr7.0.0 -7.7.3Apache Solr8.0.0 -8.6.2安全专家建议用户尽快升级到安全…

php session页面传值,PHP session在页面间传递的问题

PHP session在页面间传递的问题:前提: 使用codeIgniter的框架, 使用PHP自带的session1. 在纯apache服务器上没有问题2. 在Nginx的apache模式下, 独立于codeIgniter框架外的页面无问题3. 在Nginx的apache模式下, 置于codeIgniter框架内的页面, 页面间session的传递有问题, 即一个…

php div边框,CSS自定义边框

3 个答案:答案 0 :(得分:2)边框图像覆盖在元素的顶部,因此即使边框图像是透明的,它仍然会显示其背后元素的颜色。纯CSS解决方案是使用伪元素。首先将div的位置设置为非静态(相对,绝对或固定将起作用)。然后使你的元素绝对并跨越di…

html5怎么改为vue_Vue实战——编程式导航打开新窗口,登录状态本地存储

近日来,我陆续的分享了vue相关的系列文章,以新闻列表项目为载体,实战的方式介绍了vue及其周边的技术。本文承接前文,不断通过项目迭代的方式继续分享vue相关的知识。目前Vue实战系列文章已形成了目录,各位感兴趣的朋友…

php 有子目录,php列出目录中所有子目录的实现代码

/*** 取出指定目录的所有子目录* edit: www.jbxue.com* 2013/10/9*/function listdir($dir){if ($handle opendir($dir)){$output array();while (false ! ($item readdir($handle))){if (is_dir($dir./.$item) and $item ! "." and $item ! ".."){$out…

python转cpp_python转c工具

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! compute.proto # python_out目录指定 xxxx_pb2.py的输出路径,我们指定为. 当前路径# grpc_pytho…

php 变量 换行,php去除换行符的方法小结(PHP_EOL变量的使用)_PHP教程

一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的。本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r。因此unix系列用 /n&…

80端口为什么要备案_搞网站的你,不了解一下共享虚拟主机和备案问题

正文共:1474字 14图,预估阅读时间:4 分钟今天分享的这一切要从域名备案说起。先科普一下,平时我们访问网站都是用域名访问的,通过DNS服务器将域名解析为IP地址(你知道上网时输入的URL是怎么解析成IP地址的吗&#xff1…

订阅号 笔记记录开发 php,微信订阅号开发笔记(五)

1、用户管理//查询所有分组public function queryGroups(){$url "https://api.weixin.qq.com/cgi-bin/groups/get?access_token";$url.$this->getacctoken();$result $this->cget($url);header("Content-type: text/html; charsetutf-8");print_r…

jqprint获取打印页数_高年级应用题40道,假期快给孩子打印练习吧!(含答案)...

1.王爷爷家养的4头奶牛每个星期产奶896千克,平均1头奶牛每天产多少奶呢?2.4辆汽车3次运水泥960袋,平均每辆汽车每次运水泥多少袋?3.水波小学每间教室有3个窗户,每个窗户安装12块玻璃,9间教室一共安装多少块…

cstring移除指定字符串_从String中移除空白字符的多种方式!?差别竟然这么大!...

作者 | Hollis来源 | Hollis字符串,是Java中最常用的一个数据类型了。我们在日常开发时候会经常使用字符串做很多的操作。比如字符串的拼接、截断、替换等。这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中的空格…