Java Iterator 使用
学而时习之,温故而知新.
迭代器是一种模式、详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
使用方法对比
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List list = new ArrayList();//实例化集合对象list.add("A"); //添加数据list.add("B");list.add("C");list.add("D");//迭代器用于while循环Iterator iterator = list.iterator();//创建迭代器while (iterator.hasNext()) { //判断是否有下一个元素String str = (String) iterator.next(); //获取集合元素System.out.println(str);}//迭代器用于for循环for (Iterator iterator1 = list.iterator(); iterator1.hasNext(); ) {String str = (String) iterator1.next();System.out.println(str);}//forfor (int i=0;i<list.size();i++){System.out.println(list.get(i));}//foreachfor (Object str:list){System.out.println(str);}}
}
用法的区分:
for一般可以用于简单的顺序集合,并且可以预测集合的大小;
foreach可以遍历任何集合或者数组,但是使用者需要知道遍历元素的类型。
iterator不需要知道元素类型和元素大小,通过hasnext()判断是否遍历完所有元素
for循环与迭代器的对比:
* 效率上各有各的优势:
> ArrayList对随机访问比较快,而for循环中使用的get()方法,采用的即是随机访问的方法,
因此在ArrayList里for循环快。
> LinkedList则是顺序访问比较快,Iterator中的next()方法采用的是顺序访问方法,
因此在LinkedList里使用Iterator较快。
> 主要还是要依据集合的数据结构不同的判断。
Java Iterator 使用相关推荐
- java中next的用法_关于java iterator的next()方法的用法
UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...
- java iterator对象_JAVA Iterator 详解 代码
Iterator接口 1.所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象 2.Iterator对象称为迭代器,用以方便的操作实现对象 ...
- java iterator如何知道数量_Java开发岗面试题基础篇(二)
点击蓝字 关注wo们 老哥们,接上篇<Java开发岗面试题--基础篇(一)>,本期推出Java开发岗面试题--基础篇(二),来看看Java中的集合.多线程.异常体系等知识在面试中是怎么体现 ...
- java iterator 将int_ListIteratorlt;Egt; listIterator(int index)_Java.util包|WIKI教程
ListIterator listIterator(int index) 描述 (Description) java.util.LinkedList.listIterator(int index)方法 ...
- Java Iterator 接口简介和简单用法.
Iterator 的中文意思是迭代器. 单单从中文翻译也不易理解迭代器的意思啊, 其实Iterator是1个接口, 它的作用就是遍历容器的所有元素. 一, Iterator 接口简介 Iterat ...
- java iterator map_Java循环遍历输出map方法
1.使用entries来遍历(entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry) 使用说明:该方法只能用于java 5或者更高的版本:如果遍历的map是一个空值,循 ...
- Java Iterator到Java 8 Stream
有时在我的工作中,我需要与其他库集成,这些库将返回Iterator对象而不是列表. 从库的角度来看,这很好,但是当您想在返回的迭代器上使用Java 8流时,这可能是个问题. 有一种方法可以将Itera ...
- java iterator 嵌套_Java中的集合嵌套
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;publ ...
- java iterator获取索引_2020年Java面试题最新整理(1625)
16.Java集合框架是什么? 说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Jav ...
最新文章
- mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON
- a标签怎么传参_jsp页面中怎么利用a标签的href进行传递参数以及需要注意的地方...
- linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)
- oracle 存储过程 db,oracle数据库的存储过程是什么?
- Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈
- 通用汽车CES官宣电动皮卡 追赶福特、Rivian
- 解决Excel文件读取遇到值为null单元格会自动跳过的情况
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
- android layoutinflater 高度,从LayoutInflater.inflate看View的创建过程
- 泛微OA主表与明细表的js操作
- Indy TCP/IP 组件里的几个常用方法
- Hive—日期格式使用总结
- 通讯:春运中的墨西哥“乘务员”
- 微软专利展示了具有灵活触控笔的双屏设备
- Formal Verification (二) FPV、APPs
- 三次握手与四次挥手过程详解
- 浅析“热更新”(热修复)解决方案
- linux的翻译系统开发,Linux下类似金山词霸的翻译软件
- 学习的榜样,进步的力量(来自中国人才热线的简历)
- macos系统终端命令失效