java 反向迭代器_【ThinkingInJava】23、反向迭代器

/**

* 书本:《Thinking In Java》

* 功能:我们希望在默认的向前迭代器的基础上,添加产生反向迭代器的能力。

* 文件:AdapterMethodIdiom.java

* 时间:2015年4月8日19:59:01

* 作者:cutter_point

*/

package Lesson11holdingyourobjects;

import java.util.*;

class ReversibleArrayList extends ArrayList

{

public ReversibleArrayList(Collection c) { super(c);}

public Iterable reversed()

{

return new Iterable()//第一个匿名的内部类

{

@Override

public Iterator iterator() //Iterable里面的必须实现的方法

{

return new Iterator()//返回值是第二个匿名内部类

{

int current = size() - 1;//这个size是ArrayList里面的函数,继承过来的

@Override

public boolean hasNext()

{

return current > -1;

}

@Override

public T next()

{

return get(current--); //这个是向前推进的

}

@Override

public void remove()

{

throw new UnsupportedOperationException();

}

};

}

};

}

}

public class AdapterMethodIdiom

{

public static void main(String [] args)

{

ReversibleArrayList ral = new ReversibleArrayList(Arrays.asList("To be or not to be".split(" ")));

for(String s : ral)

System.out.print(s + " ");

System.out.println();

//向前遍历

for(String s : ral.reversed())

System.out.print(s + " ");

}

}

预览:

To be or not to be

be to not or be To

原文:http://blog.csdn.net/cutter_point/article/details/45461175

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值