java中iterator是什么?什么是迭代器 iterator
大家好,今天给各位分享java中iterator是什么的一些知识,其中也会对什么是迭代器 iterator进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
什么是迭代器 iterator
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。
为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.
例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).
对 Collection进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。
但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。
Java中什么叫迭代器
迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2)使用next()获得序列中的下一个元素。
(3)使用hasNext()检查序列中是否还有元素。
(4)使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l= new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for(Iterator iter= l.iterator(); iter.hasNext();){
String str=(String)iter.next();
System.out.println(str);
}
/*迭代器用于while循环
Iterator iter= l.iterator();
while(iter.hasNext()){
String str=(String) iter.next();
System.out.println(str);
}
*/
JAVA中Iterator的具体作用
Iterator接口中一共有3中方法。
API中的方法摘要是这样的
booleanhasNext()
如果仍有元素可以迭代,则返回true。
Enext()
返回迭代的下一个元素。
voidremove()
从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。
举个例子给你看看
ArrayLista=newArrayList();//创建集合
a.add("aaa");//向集合中添加元素
a.add("bbb");//向集合中添加元素
a.add("ccc");//向集合中添加元素
Iteratort=a.itrator();//获取迭代器,用于取出集合的元素
System.out.print(t.hasNext());//输出的是true。hasNext()的返回值是boolean,是用于判断是否集合中还有下一个元素。
System.out.println(t.next());//输出的是aaa,可见next()方法返回的是集合的元素
t.remove();//移除迭代器返回的最后一个元素,上面只用到了next()方法一次,所以删除的是上面的aaa,就是说集合里已经没有aaa了。
上面的打印是为了看出效果才这么做的,实际上,真正用的时候是直接对返回值进行操作。而不是只进行打印输出。
java Iterator i=c.iterator();这句的意思是什么
这个深究起来很麻烦。
HashSet()的对象,并不像List接口的实现类一样是顺序存储,而是基于哈希算法,算出内存地址之后,再存储,所以HashSet()的对象,没法循环遍历,这句话的意思就是对HashSet进行迭代。
Iterator是一个迭代器,Iterator i=c.iterator()之后,可以使用i.nextO方法,进行循环。建议查看一下jdk帮助文档。
java.util.Iterator接口
java中iterator是什么和什么是迭代器 iterator的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!