<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)可配置的遍歷行為了。

     

     

    主站蜘蛛池模板: 亚洲精品乱码久久久久久按摩 | 日韩一级视频免费观看| 亚洲视频免费观看| 色欲国产麻豆一精品一AV一免费| 国产偷国产偷亚洲高清日韩| 色多多A级毛片免费看| 亚洲AV中文无码乱人伦| 免费人妻精品一区二区三区| 免费中文字幕在线观看| 草久免费在线观看网站| 亚洲精品无码专区2| 又黄又大的激情视频在线观看免费视频社区在线 | 日韩特黄特色大片免费视频| 亚洲午夜福利在线视频| 天天看免费高清影视| 亚洲日韩精品无码专区| 日韩免费毛片视频| 菠萝菠萝蜜在线免费视频| 亚洲一区二区三区免费| 精品国产一区二区三区免费| 精品亚洲成AV人在线观看| 四虎永久在线观看免费网站网址 | 国产一区二区三区在线免费观看| 美女被艹免费视频| 亚洲一级片免费看| 无码人妻一区二区三区免费看| 久久久久亚洲精品天堂| 精品久久久久国产免费| 国产亚洲视频在线观看| 久久国产亚洲精品麻豆| 亚洲精品免费网站| 日本精品久久久久久久久免费 | 十九岁在线观看免费完整版电影| 亚洲精品成人久久| 日韩一级免费视频| 国产日韩AV免费无码一区二区| 亚洲精品国产情侣av在线| 国产精品免费视频一区| 国产精品小视频免费无限app | 大地资源免费更新在线播放 | 一区二区三区亚洲|