时间:2021-05-19
在学习集合的时候,我们经常会说把集合里的元素进行遍历,实际上这个过程有一个专门的名称,叫做迭代。迭代器就是对这种遍历进行操作的工具,好处是能够使内部程序的细节得到保密。下面我们就java迭代器的概念、作用进行具体的分析,会结合一些元素、接口的知识点,最后带来使用迭代器的实例。
是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。
java中提供了很多种集合,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些集合中的元素时,可以通过一种通用的获取方式来完成。
Collection集合元素的通用获取方式: 在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来;继续再判断,如果还有就再取出来。一直到把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
集合中把这种取元素的方式描述在Iterator接口中。
迭代器是java定义的一个接口,在java.util.Iterator包下。该接口有四大方法,便于实现了该接口的集合类进行访问操作。
public interface Iterator<E>{E next();boolean hasNextO;void remove0;default void forEachRemaining(Consumer<? super E> action);}实例扩展:
public class Demo { public static void main(String[] args) { ActualContainer container = new ActualContainer(); for(int i = 5 ; i < 20 ; i++){ container.add(i); } Iterator iterator = container.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } }}/** * 迭代器接口,包含有常用的迭代器方法 */interface Iterator{ public boolean hasNext(); public Object next();}/** * 容器接口:包含有获取迭代器的方法 */interface Container{ public Iterator iterator();}/** * 具体实现类 * @author jiaoyuyu * */class ActualContainer implements Container{ private List<Object> list = new ArrayList<>(); public void add(Object obj){ this.list.add(obj); } public void remove(Object obj){ this.list.remove(obj); } public Object get(int index){ if(index <= (this.list.size() - 1)){ return this.list.get(index); } return null; } public Iterator iterator() { return new ActualIterator(); } private class ActualIterator implements Iterator{ private int pointer = 0; public boolean hasNext() { return this.pointer < list.size() ? true : false; } public Object next() { if(this.pointer < list.size()){ Object obj = list.get(pointer); pointer++; return obj; } return null; } }}到此这篇关于java迭代器基础知识点总结的文章就介绍到这了,更多相关java迭代器的基本概念内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大。基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场
案例知识点:1.vue.js基础知识2.HTML5本地存储localstoragestore.js代码constSTORAGE_KEY='todos-vue.j
java基础知识之网路通信总结在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信、UDP通信、多播以及NIO。 TCP连接 TCP的基础
想要学好SEO优化,那么了解网站优化相关的一些基础知识是必不可少的。掌握好每一个基础知识点的是为了后期更好优化网站。网上关于搜索引擎抓取页面规则的文章多如牛毛,
一个很基础的知识点,JavaScript中基本数据类型和引用数据类型是如何存储的。由于自己是野生程序员,在刚开始学习程序设计的时候没有在意内存这些基础知识,导致