java倒序輸出List

來源:互聯網
上載者:User

標籤:

先貼代碼

package com.tsubasa.collection;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;public class ReversibleArrayList<T> extends ArrayList<T>{    public ReversibleArrayList(Collection<T> c){        super(c) ;    }    public Iterable<T> reversed(){        return new Iterable<T>(){            @Override            public Iterator<T> iterator() {                return new Iterator<T>(){                    int current = size() -1 ;                    @Override                    public boolean hasNext() {                       return current > -1 ;                    }                    @Override                    public T next() {                        return get(current--);                    }                    @Override                    public void remove() {                        throw new UnsupportedOperationException() ;                    }                } ;            }                    } ;    }        public static void main(String[] args) {        ReversibleArrayList<String> list =                 new ReversibleArrayList<String>(                        Arrays.asList("to be or not to be it is a question".split(" "))) ;                for(String str : list){            System.out.print(str + " ");        }        System.out.println();        for(String str :list.reversed()){            System.out.print(str + " ");        }    }}

運行結果:

to be or not to be it is a question
question a is it be to not or be to

 

上面這種解決方案使用了所謂的適配器方法適配器部分來自於設計模式,因為我們這裡使用foreach遍曆list,所以我們必須提供滿足foreach的介面。

因為我們的ArrayList已經實現了Iterable介面,所以下面有兩個選擇來實現倒序輸出:

1.覆蓋ArrayList原有的iterator方法

2.自己在生產一個iterator介面。

通過上面的代碼,顯然這裡我們選擇了第二種方法。

 

java倒序輸出List

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.