文档章节

迭代器的使用小记

Loveror_ahu
 Loveror_ahu
发布于 2017/09/07 15:31
字数 250
阅读 2
收藏 0
点赞 0
评论 0

java.lang.Iterable接口比较简单:

(1) 使用方法iterator()要求容器返回一个Iterator对象。第一次调用Iterator的next()方法时,它返回序列的第一个元素。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

在java8中Iterator接口源码:

interface Iterator<E>{
	boolean hasNext(); //判断是否下一个
	E next(); //下一个
	default void remove(){
	    throw new UnsupportedOperationException();
	}
	default void forEachRemaining(Consumer<? super E> action){
	    Objects.requireNonNull(action);
	    while(hasNext()){
		action.accept(next());
	    }
	}
}

1.简单应用迭代器对map进行遍历输出

Map<String, String> name = new HashMap<String, String>();
name.put("you", "二手车");
name.put("me", "二手房");
name.put("him", "二手货");
name.put("her", "二手油");
JSONObject json = JSONObject.fromObject(name);
for (Iterator it = json.keys(); it.hasNext();) {
	 System.out.println(name.get(it.next()));
}

2.反过来对请求链接里的参数生成map

String string = "{\"you\":\"you\",\"her\":\"her\",\"him\":\"him\"}";
JSONObject Json = JSONObject.fromObject(string);
Map map = new HashMap();
for (Iterator iterator = Json.keys();iterator.hasNext();) {
	String key = (String)iterator.next();
	String value = Json.getString(key);
	map.put(key, value);
}
System.out.println(map.toString());

 

© 著作权归作者所有

共有 人打赏支持
Loveror_ahu
粉丝 1
博文 10
码字总数 10354
作品 0
南京
程序员
迭代和递归

迭代和递归 递归:是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n) 迭代:是直接自下向顶运算,由f(1)算到f(n)。 2. 迭代和递归 递归是在函数内调用本...

oneboi
2016/10/17
9
0
机器学习 西瓜书 Day17 半监督学习

p293 - p319 啊好困 = = 昨天倒是很早滚上床了 就是失眠了:) 大概也是三点多才睡着吧 所以今天也要努力早睡! 不废话了,进入第13章,但愿这章有意思点。 第13章 半监督学习 13.1 未标记样...

皇家马德里主教练齐达内
05/25
0
0
Generator的正确打开方式

前两年大量的在写+,用它来写一些类似同步的代码 但实际上,并不是被造出来干这个使的,不然也就不会有后来的、了 是一个可以被暂停的函数,并且何时恢复,由调用方决定 希望本文可以帮助你理...

Jiasm
05/15
0
0
机器学习.周志华《13 半监督学习 》

半监督学习SSL的3种假设: (1) 平滑假设(Smoothness Assumption) 位于稠密数据区域的两个距离很近的样例的类标签相似,当两个样例北稀疏区域分开时,它们的类标签趋于不同。 (2) 聚类假...

julialove102123
04/19
0
0
C++ primer第二次阅读学习笔记(第11章:泛型算法)

第十一章:泛型算法 标准库容器定义的算法很少,而是选择提供一组算法.。泛型是指这些算法不依赖特定的容器类型,可作用在不同类型的容器和不同类型的元素上。不但可以作用在list和vector上还...

长平狐
2012/10/08
55
0
更深入的理解 Python 中的迭代

深入探讨 Python 的 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 Python 的 循环不会像其他语言中的 循环那样工作。在这篇文章中,我们将深入探讨 Python 的 循环来...

01%
05/26
0
0
一起学Python:迭代器

迭代器 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 1. 可迭代对...

祈澈姑娘
01/01
0
0
vector第一步修炼之道

标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个与之对应的索引,索引用于访问对象。源于vector 包含着其他对象,所以它常被称作容器。 C++中含有类模板...

u013266600
2017/12/13
0
0
迭代器模式(Iterator)

1 场景问题 1.1 工资表数据的整合 考虑这样一个实际应用:整合工资表数据。 这个项目的背景是这样的,项目的客户方收购了一家小公司,这家小公司有自己的工资系统,现在需要整合到客户方已有...

ciyo_yang
2017/07/24
0
0
Python学习笔记--迭代器&生成器

一、Python迭代器 What?(Python迭代器是什么?) 在使用Python进行编程时,经常会使用for语句对一个对象进行遍历,获取所需数据,如 li = [1, 2, 3, 4, 5]for i in li: print i 像list、d...

紫韵
2016/05/08
67
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
29分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
45分钟前
28
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
51分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部