java的加强型循环遍历(反向遍历)

下面一段来自Java编程思想的源码:
public  class  ReversibleArrayList<T>  extends  ArrayList<T> {
      
        public  ReversibleArrayList(Collection<T> c){
              super (c);
      }
        //获取反向的迭代器
        public  Iterable<T> reversed(){
              return  new  Iterable <T>(){
                    public  Iterator<T> iterator() {
                          return  new  Iterator<T>(){
                                int  current  = size()-1;
                                public  boolean  hasNext() {
                                      return  current  >-1;
                              }
                                public  T next() {
                                      return  get( current  --);
                              }
                                public  void  remove() {
                                      throw  new  UnsupportedOperationException();
                              }
                        };
                  }
            };
      }
        //两种遍历数组的方法
        public  static  void  main(String[] args) {
            ReversibleArrayList<String> ra1 =  new  ReversibleArrayList<String>(Arrays.asList(  "I'm a good man" .split( " "  )));
              //从前往后的遍历
              for (String s:ra1){
                  System.  out .print(s+ "\t"  );
            }
            System.  out .println();
              //从后往前的遍历
              for (String s:ra1.reversed()){
                  System.  out .print(s+ "\t"  );
            }
            System.  out .println();
      }
}
foreach使用的是集合的iterator()的方法的返回值Iterator对象来经行遍历的。(不包括数组)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值