Apache的commons组件Iterator类封装

来源:互联网 发布:淘宝拖鞋女 编辑:程序博客网 时间:2024/05/22 07:06

1

package com.commons.components.collection;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 setupString[] weekDays = { "Monday", "Tuesday", "Wednesday", "Thursday","Friday", "Saturday", "Sunday" };List weekDayList = Arrays.asList(weekDays);// workdaysIterator iter1 = new ArrayListIterator(weekDays, 0, 5);printColl("Partial:", iter1, 5);//// loopIterator iter2 = new LoopingIterator(weekDayList);printColl("Loop:", iter2, 10);// looping workdaysPredicate 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++;}}}

2

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


原创粉丝点击