博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逆向迭代器
阅读量:5268 次
发布时间:2019-06-14

本文共 1466 字,大约阅读时间需要 4 分钟。

上一篇提到容器类中的一个强大的功能:迭代器。但是除了List类的ListIterator之外,迭代器都只能从头到尾遍历容器,但是由于迭代器其实是实现了Collection的Iterable接口。因此,在某些情况下,当需要使用到非顺序的迭代器是,可以通过实现该接口编写符合需求的迭代器。Itrable对象都可以用于foreach语句。下面是一个反向迭代器的示例代码:

1 package test; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5  6 public class ReverseIterator { 7  8     /** 9      * @param args10      */11     public static void main(String[] args) {12         // TODO Auto-generated method stub13         ReverseArrayList
reverseArrayList = new ReverseArrayList
(); 14 reverseArrayList.add("str1");15 reverseArrayList.add("str2");16 reverseArrayList.add("str3");17 reverseArrayList.add("str4");18 for(String a : reverseArrayList){19 System.out.println(a);20 }21 for(String b : reverseArrayList.reversIt()){22 System.out.println(b);23 }24 25 }26 27 }28 29 class ReverseArrayList
extends ArrayList
{30 private static final long serialVersionUID = 1L;31 public Iterable
reversIt(){32 return new Iterable
(){33 public Iterator
iterator() {34 return new Iterator
() {35 int pointer = size() - 1;36 public boolean hasNext() {37 return pointer>-1;38 }39 public T next() {40 return get(pointer--);41 }42 public void remove() {43 }};44 }};45 }46 }

 

转载于:https://www.cnblogs.com/jiama/p/4347316.html

你可能感兴趣的文章
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器...
查看>>
git的安装
查看>>
mysql 8.0 zip包安装
查看>>
Spring框架系列(三)--Bean的作用域和生命周期
查看>>
springboot + mybatis
查看>>
awk 统计
查看>>
CSS min-height 属性
查看>>