<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Read Sean

    Read me, read Sean.
    posts - 508, comments - 655, trackbacks - 9, articles - 4

    [Jakarta Commons筆記] Commons Collections - Iterator組

    Posted on 2005-08-06 12:47 laogao 閱讀(1865) 評論(0)  編輯  收藏 所屬分類: On Java

     

    來看最后一組 – Iterator。

     

    LoopingIterator

    ArrayListIterator

    FilterIterator

    UniqueFilterIterator

    IteratorUtils

     

    java.util.Iterator接口定義了標準的Collection遍歷方法,但是如果不做改變的使用它,我們得到的是從頭到尾一次性的遍歷。假如我們需要循環遍歷,假如我們需要遍歷某一段,假如我們需要遍歷滿足某些條件的元素,等等等等,我們就不能完全依賴于這個Iterator的標準實現了。除非我們寧可在此基礎上在調用的代碼中多加一些判斷,不過這樣的話代碼就會顯得混亂,時間長了就容易變得難以維護。Commons Collections的這一組Iterator為我們帶來了便利。

     

    這些Iterator使用都很一目了然,直接看例子吧:

     

    package sean.study.commons.collections;

     

    import java.util.Arrays;

    import java.util.Iterator;

    import java.util.List;

     

    import org.apache.commons.collections.Predicate;

    import org.apache.commons.collections.iterators.ArrayListIterator;

    import org.apache.commons.collections.iterators.FilterIterator;

    import org.apache.commons.collections.iterators.LoopingIterator;

    import org.apache.commons.lang.StringUtils;

     

    public class IteratorUsage {

     

        public static void main(String[] args) {

            demoIteratorUsage();

        }

       

        public static void demoIteratorUsage() {

     

            System.out.println(StringUtils.center(" demoClosureUsage ", 40, "="));

           

            // data setup

            String[] weekDays = {

                "Monday", "Tuesday", "Wednesday",

                "Thursday", "Friday", "Saturday", "Sunday"

            };

            List weekDayList = Arrays.asList(weekDays);

           

            // workdays

            Iterator iter1 = new ArrayListIterator(weekDays, 0, 5);

            printColl("Partial:", iter1, 5);

           

            // loop

            Iterator iter2 = new LoopingIterator(weekDayList);

            printColl("Loop:", iter2, 10);

           

            // looping workdays

            Predicate notWeekendPredicate = new Predicate() {

                public boolean evaluate(Object obj) {

                    String str = (String) obj;

                    if ("Saturday".equalsIgnoreCase(str)) {

                        return false;

                    }

                    if ("Sunday".equalsIgnoreCase(str)) {

                        return false;

                    }

                    return true;

                }

            };

            Iterator iter3 = new FilterIterator(

                new LoopingIterator(weekDayList),

                notWeekendPredicate

            );

            printColl("No Weekends loop:", iter3, 12);

           

            System.out.println(StringUtils.repeat("=", 40));

     

        }

       

        public static void printColl(String label, Iterator iter, int maxCount) {

            if (StringUtils.isNotBlank(label)) {

                System.out.println(label);

            }

            int i = 0;

            while (iter.hasNext() && i < maxCount) {

                System.out.println("# " + iter.next() + " #");

                i++;

            }

        }

     

    }

     

    運行結果如下:

     

    =========== demoClosureUsage ===========

    Partial:

    # Monday #

    # Tuesday #

    # Wednesday #

    # Thursday #

    # Friday #

    Loop:

    # Monday #

    # Tuesday #

    # Wednesday #

    # Thursday #

    # Friday #

    # Saturday #

    # Sunday #

    # Monday #

    # Tuesday #

    # Wednesday #

    No Weekends loop:

    # Monday #

    # Tuesday #

    # Wednesday #

    # Thursday #

    # Friday #

    # Monday #

    # Tuesday #

    # Wednesday #

    # Thursday #

    # Friday #

    # Monday #

    # Tuesday #

    ========================================

     

    有了這些實用的Iterator類,我們就可以輕松的實現可配置的遍歷行為了。

     

     

    主站蜘蛛池模板: 四虎最新永久免费视频| 亚洲精品无码成人片久久| 国产av天堂亚洲国产av天堂| 免费阿v网站在线观看g| 国产亚洲福利在线视频| 搡女人真爽免费视频大全| 热久久这里是精品6免费观看| 亚洲真人无码永久在线| 国产成人免费AV在线播放| 久久久婷婷五月亚洲97号色| 99久久精品日本一区二区免费 | 亚洲激情黄色小说| 国产亚洲色婷婷久久99精品91| 免费在线观影网站| 亚州**色毛片免费观看| 亚洲乱码无人区卡1卡2卡3| 亚洲乱码在线视频| 亚洲一区精品中文字幕| 无码欧精品亚洲日韩一区| 亚洲乱码精品久久久久..| 亚洲午夜激情视频| 久久www免费人成看片| 久久成人免费电影| 亚洲国产AV无码一区二区三区| 亚洲另类图片另类电影| 亚洲视频手机在线| 国产三级电影免费观看| 久久精品国产影库免费看| 国产无限免费观看黄网站| 亚洲午夜电影在线观看| 亚洲美女视频一区二区三区| 亚洲人成电影在在线观看网色| 亚洲AV午夜福利精品一区二区| 亚洲欧洲日产国码av系列天堂| 伊人婷婷综合缴情亚洲五月| ZZIJZZIJ亚洲日本少妇JIZJIZ| 亚洲中文字幕无码专区| 亚洲精品久久久www| 成人无码区免费A片视频WWW| 黄在线观看www免费看| 无码中文字幕av免费放|