设为首页 加入收藏

TOP

Apache Commons Collections基本操作(Predicate、Transformat、Closure等)(六)
2015-11-21 01:01:37 来源: 作者: 【 】 浏览:16
Tags:Apache Commons Collections 基本操作 Predicate Transformat Closure
=========差集========= 1

五、Queue队列

package Collections;

import java.util.Queue;

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.functors.NotNullPredicate;
import org.apache.commons.collections4.queue.CircularFifoQueue;
import org.apache.commons.collections4.queue.PredicatedQueue;
import org.apache.commons.collections4.queue.UnmodifiableQueue;

/**
 * Queue队列
 * 1.循环队列
 * 2.只读队列:不可改变队列
 */
@SuppressWarnings("all")
public class Demo05 {
    public static void main(String[] args) {
        circullar();
        readOnly();
        //predicate();
    }

    /**
     * 循环队列
     */
    public static void circullar()
    {
        //长度是2,因此只能保留两个,循环着走。
        CircularFifoQueue
   
     que = new CircularFifoQueue<>(2); que.add("a"); que.add("b"); que.add("c"); que.add("d"); //查看 for(int i=0;i
    
      que = new CircularFifoQueue<>(2); que.add("a"); que.add("b"); que.add("c"); Queue
     
       readOnlyOne = UnmodifiableQueue.unmodifiableQueue(que); //readOnlyOne.add("d");//java.lang.UnsupportedOperationException } /** * 断言队列 */ public static void predicate() { //循环队列 CircularFifoQueue
      
        que = new CircularFifoQueue<>(2); que.add("a"); que.add("b"); que.add("c"); Predicate notNull = NotNullPredicate.INSTANCE; //包装成对应的队列 Queue
       
         que2 = PredicatedQueue.predicatedQueue(que,notNull); //que2.add(null);//java.lang.IllegalArgumentException } }
       
      
     
    
   

运行结果:

c
d

六、迭代器的扩展

package Collections;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.iterators.ArrayListIterator;
import org.apache.commons.collections4.iterators.FilterIterator;
import org.apache.commons.collections4.iterators.LoopingIterator;
import org.apache.commons.collections4.iterators.UniqueFilterIterator;
import org.apache.commons.collections4.map.HashedMap;

/**
 * 迭代器的扩展
 * 1、MapIterator 以后不再使用map.keySet.iterator访问
 *   IterableMap   
 *   HashedMap
 * 2、去重迭代器
 *   UniqueFilterIterator
 * 3、自定义的过滤器
 *   FilterIterator   自定义的过滤器+Predicate
 * 4、循环迭代器
 *   LoopingIterator 
 * 5、数组迭代器
 *   ArrayListIterator
 *   
 * @author liguodong
 */
@SuppressWarnings("all")
public class Demo06 {


    public static void main(String[] args) {
        mapIt();
        uniqueIt();
        filterIt();
        loopIt();
        arrayIt();
    }
    /**
     * map迭代器
     */
    public static void mapIt()
    {
        System.out.println("=======map迭代器=========");
        IterableMap
   
     map = new HashedMap<>(); map.put("a", "baby"); map.put("b", "ohyeah"); map.put("c", "doog"); //使用MapIterator MapIterator
    
      it = map.mapIterator(); while(it.hasNext()) { //移动游标 it.next() String key = it.next(); //或者使用如下方法 /*it.next(); String key = it.getKey();*/ String value = it.getValue(); System.out.println(key+"-->"+value); } } /** * 去重迭代器 */ public static void uniqueIt() { System.out.println("=======去重迭代器========="); List
     
       list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("a"); //去掉重复的过滤器 Iterator
      
        it = new UniqueFilterIterator<>(list.iterator()); while(it.hasNext()) { System.out.println(it.next()); } } /** * 自定义迭代器 */ public static void filterIt() { System.out.println("======= 自定义迭代器========="
首页 上一页 3 4 5 6 7 下一页 尾页 6/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ string 类 学习笔记 下一篇C++――2828: 素数判断

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: