介绍
这篇文章将为大家详细讲解有关java迭代器迭代器功能的实现方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
迭代器的实现代码:
List,列表=new ArrayList<比;(2); ,,,list.add (“java"); ,,,list.add (“c#“); ,,,Iterator ,迭代器=list.iterator (); ,,,while (iterator.hasNext ()) { ,,,,,System.out.println (iterator.next ()); ,,,}
上面的代码是java中很常见的一个迭代的功能。
于是自己也想要写一个泛型类,然后支持这种迭代的功能。
于是乎写了一个类似ArrayList的动态数组功能。
package ; import javax.swing.text.html.HTMLDocument; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; public class  Gys, gy=new Gys<在(); ,,,gys.add (5); ,,,gys.add (45); ,,,System.out.println (gys.get (0)); ,,,System.out.println (gys.get (1)),,,,, ,,} }
上面的代码怎么都没办法实现迭代器的功能,在想法下怎么都点不出来迭代器的提示;
于是只能去翻阅jdk原码。在ArrayList中看到如下的代码。
在ArrayList中申明一个内部类Itr,并且继承Iterator
在定义一个方法专门获取迭代器实例。
公共Iterator
这才明白如何实现迭代器功能,
所以对上面的泛型代码进行改造。
package ; import java.util.Arrays; import java.util.Iterator; public class  Gys{ ,,,private int ; ,,,private int 兰; ,,,public Itr (), { ,,,,,this.point=0; ,,,,,this.len=endIndex; ,,,} ,,@Override ,,,public boolean hasNext (), { ,,,,,return point , iterator () { ,,,return new Itr (); ,,}, public 才能;T get (int 我){ ,,,如果(i<, endIndex) { ,,,,,return (T), elemts[我]; ,,,} ,,,throw new RuntimeException(“索引超出界限“); ,,} public 才能;static  void main (String [], args), { null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null java迭代器迭代器功能的实现方法