<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 閱讀(1858) 評論(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類,我們就可以輕松的實現可配置的遍歷行為了。

     

     

    主站蜘蛛池模板: 3d动漫精品啪啪一区二区免费| 国产一级大片免费看| 亚洲熟女www一区二区三区| 国产伦精品一区二区三区免费迷 | 亚洲成_人网站图片| 亚洲五月午夜免费在线视频| 最近免费字幕中文大全视频| 美女尿口扒开图片免费| 亚洲ⅴ国产v天堂a无码二区| 日韩在线免费播放| 污视频在线免费观看| 国产亚洲女在线线精品| 亚洲精品在线播放| 久久精品亚洲乱码伦伦中文| 免费v片在线观看视频网站| 亚欧乱色国产精品免费视频| 亚洲av无码一区二区三区天堂古代| 亚洲免费日韩无码系列| 最近中文字幕无吗免费高清| 最近2019中文免费字幕在线观看| 亚洲午夜福利在线视频| 亚洲福利视频导航| 亚洲人成色7777在线观看不卡| 国产成人免费在线| 国产免费内射又粗又爽密桃视频 | 亚洲精品国产精品| 91亚洲导航深夜福利| 黑人大战亚洲人精品一区| 全免费a级毛片免费**视频| 三年片在线观看免费观看大全一| 一级黄色毛片免费看| 亚洲欧美黑人猛交群| 亚洲国产成人久久| 久久噜噜噜久久亚洲va久| 亚洲精品乱码久久久久久不卡| 扒开双腿猛进入爽爽免费视频| 免费能直接在线观看黄的视频| 免费观看久久精彩视频| WWW免费视频在线观看播放| 国产精品亚洲专区无码不卡| 亚洲精品美女网站|