Apache的commons之函数式编程集合及队列(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/83956435

集合并集

CollectionUtils.union(集合1, 集合2)

集合交集

CollectionUtils.intersection(集合1, 集合2)
或者
CollectionUtils.retainAll(集合1, 集合2)

集合差集

CollectionUtils.subtract(集合1, 集合2)

使用如下

    public static void main (String[] args) {
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        List<Integer> list1=new ArrayList<>();
        list1.add(3);
        list1.add(4);
        list1.add(5);
        list1.add(6);
        //并集
        System.out.println("####并集");
        Collection<Integer> union = CollectionUtils.union(list, list1);
        union.stream().forEach(System.out::println);

        System.out.println("####交集");
       // Collection<Integer> intersection = CollectionUtils.intersection(list, list1);
        Collection<Integer> intersection = CollectionUtils.retainAll(list, list1);
        intersection.stream().forEach(System.out::println);
        System.out.println("######差集");
        Collection<Integer> disjunction = CollectionUtils.subtract(list, list1);
        disjunction.stream().forEach(System.out::println);
        System.out.println("###除去交集所剩的全部元素");
        Collection<Integer> disjunction1 = CollectionUtils.disjunction(list, list1);
        disjunction1.stream().forEach(System.out::println);
    }

 

队列CircularFifoQueue

 public static void main (String[] args) {
       // loopQueue();
        //readOnly();
        predicate();
    }

    //循环队列
    public static void loopQueue(){
        //size 队列长度 队列满了时候再添加元素,会自动弹出先进来的元素,再在后面添加
        //即 你size长度为2  但是add添加 三个值{a,b,c} 这时c会覆盖a
        CircularFifoQueue<String> circularFifoQueue=new CircularFifoQueue(2);
        circularFifoQueue.add("a");
        circularFifoQueue.add("b");
        circularFifoQueue.add("c");
        circularFifoQueue.stream().forEach(System.out::println);

    }


    //只读队列
    public static void readOnly(){
        CircularFifoQueue<String> circularFifoQueue=new CircularFifoQueue(2);
        circularFifoQueue.add("a");
        circularFifoQueue.add("b");
        circularFifoQueue.add("c");

        java.util.Queue<String> strings = UnmodifiableQueue.unmodifiableQueue(circularFifoQueue);
        //strings.add("c"); 错误java.lang.UnsupportedOperationException

    }


    //断言队列
    public static void predicate(){
        CircularFifoQueue<String> circularFifoQueue=new CircularFifoQueue(4);
        circularFifoQueue.add("a");
        circularFifoQueue.add("b");
        circularFifoQueue.add("c");


        PredicatedQueue<String> strings = PredicatedQueue.predicatedQueue(circularFifoQueue, NotNullPredicate.INSTANCE);
       // strings.add(null);  错误 Cannot add Object 'null'

        strings.add("d");
        strings.stream().forEach(System.out::println);
    }

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/83956435