温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何正确的使用java迭代器

发布时间:2021-01-21 17:24:44 来源:亿速云 阅读:196 作者:Leah 栏目:开发技术

如何正确的使用java迭代器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1.概念

是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。

2.作用

java中提供了很多种集合,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些集合中的元素时,可以通过一种通用的获取方式来完成。

Collection集合元素的通用获取方式: 在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来;继续再判断,如果还有就再取出来。一直到把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

集合中把这种取元素的方式描述在Iterator接口中。

3.实例

迭代器是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迭代器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI