<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

     

    來看最后一組 – Iterator

     

    LoopingIterator

    ArrayListIterator

    FilterIterator

    UniqueFilterIterator

    IteratorUtils

     

    java.util.Iterator接口定義了標(biāo)準(zhǔn)的Collection遍歷方法,但是如果不做改變的使用它,我們得到的是從頭到尾一次性的遍歷。假如我們需要循環(huán)遍歷,假如我們需要遍歷某一段,假如我們需要遍歷滿足某些條件的元素,等等等等,我們就不能完全依賴于這個(gè)Iterator的標(biāo)準(zhǔn)實(shí)現(xiàn)了。除非我們寧可在此基礎(chǔ)上在調(diào)用的代碼中多加一些判斷,不過這樣的話代碼就會(huì)顯得混亂,時(shí)間長了就容易變得難以維護(hù)。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++;

            }

        }

     

    }

     

    運(yùn)行結(jié)果如下:

     

    =========== 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 #

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

     

    有了這些實(shí)用的Iterator類,我們就可以輕松的實(shí)現(xiàn)可配置的遍歷行為了。

     

     

    主站蜘蛛池模板: 99re6免费视频| 亚洲六月丁香六月婷婷蜜芽| 亚洲精品无码你懂的网站| 免费国产美女爽到喷出水来视频| 成人爽A毛片免费看| 成人免费看黄20分钟| 永久免费看bbb| 国产成人在线免费观看| 免费观看国产小粉嫩喷水| 亚洲AV无码一区二区三区在线观看 | 亚洲日韩中文字幕| 亚洲激情黄色小说| 亚洲乱码在线观看| 亚洲AV女人18毛片水真多| 边摸边脱吃奶边高潮视频免费| 一区二区三区精品高清视频免费在线播放 | 亚洲国产精品一区二区第一页| 亚洲AV综合色区无码另类小说| 亚洲精品天天影视综合网| 亚洲手机中文字幕| 亚洲狠狠婷婷综合久久| 免费无遮挡无码视频在线观看| 久久久久久av无码免费看大片| 国产精品免费福利久久| 99久久免费国产香蕉麻豆| 在线看片人成视频免费无遮挡| 亚洲AV无码乱码在线观看| 亚洲中文字幕不卡无码| 色婷婷亚洲十月十月色天| 亚洲中文字幕无码一去台湾| 国产精品亚洲а∨天堂2021| 国产午夜精品理论片免费观看| 四虎国产精品永久免费网址| 国产在线国偷精品产拍免费| 亚洲 国产 图片| 亚洲精品国产成人99久久| 亚洲欧美国产日韩av野草社区| 一级黄色免费网站| 亚洲一区二区三区免费观看| 国产精品久久香蕉免费播放| 亚洲国产精品VA在线观看麻豆|