java反向列表的实现

来源:互联网 发布:企业网站seo案例 编辑:程序博客网 时间:2024/05/30 22:42

反向列表

import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class ReverseList<T> extends ArrayList<T>{    private static final long serialVersionUID = 1L;    public ReverseList(Collection<T> c){ super(c);}    public Iterable<T> reversed(){        return new Iterable<T>() {            @Override            public Iterator<T> iterator() {                return new Iterator<T>() {                    private int index = size()-1;                    @Override                    public boolean hasNext() {                          return index>=0;                    }                    @Override                    public T next() {                        return get(index--);                    }                };            }        };    }}

测试代码

import java.util.ArrayList;import java.util.Iterator;public class ReverseListTest {    public static void main(String[] args) {        ArrayList<String> wl = new ArrayList<String>();        for(int i = 0; i<10; i++){            wl.add("str"+i);        }        ReverseList<String> rl = new ReverseList<String>(wl);        Iterator<String> itr = rl.reversed().iterator();        while(itr.hasNext()){            System.out.println(itr.next());        }    }}
原创粉丝点击