来源:http://www.bjsxt.com/
1、S02E140_01commons之集合与队列
package com.test.commons;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
/**
* 集合操作
* 1.并集
* CollectionUtils.union
* 2.交集
* CollectionUtils.intersection
* CollectionUtils.retainAll
* 3.差集
* CollectionUtils.subtract
*/
public class TestSetOper {
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<Integer>();
set1.add(1);
set1.add(2);
set1.add(3);
Set<Integer> set2 = new HashSet<Integer>();
set2.add(2);
set2.add(3);
set2.add(4);
System.out.println("===========并集===================");
Collection<Integer> col = CollectionUtils.union(set1, set2);
System.out.println(col);//[1, 2, 3, 4]
System.out.println("===============交集=================");
col = CollectionUtils.intersection(set1, set2);//或者使用retainAll
System.out.println(col);//[2, 3]
System.out.println("==========差集===================");
col = CollectionUtils.subtract(set1, set2);
System.out.println(col);//[1]
}
}
package com.test.commons;
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.循环队列
* new CircularFifoQueue<类型>()
* 2.只读队列
* UnmodifiableQueue.unmodifiableQueue(队列)
* 3.断言队列
* PredicatedQueue.predicatedQueue(队列,断言)
*/
public class TestQueue {
public static void main(String[] args) {
TestCircular();
TestReadOnly();
TestPredicate();
}
public static void TestCircular(){
System.out.println("======循环队列=====================");
CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
que.add("a");
que.add("b");
System.out.println(que);//[a, b]
que.add("c");
System.out.println(que);//[b, c]/先进先出,a出c进
}
public static void TestReadOnly(){
System.out.println("======只读队列=====================");
CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
que.add("a");
que.add("b");
//包装成对应的只读队列
Queue<String> readOnlyQue = UnmodifiableQueue.unmodifiableQueue(que);
//readOnlyQue.add("c");//java.lang.UnsupportedOperationException
}
public static void TestPredicate(){
System.out.println("======断言队列=====================");
CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
que.add("a");
que.add("b");
Predicate notNull = NotNullPredicate.INSTANCE;
//包装成对应的断言队列
Queue<String> predicateQue = PredicatedQueue.predicatedQueue(que, notNull);
//predicateQue.add(null);//java.lang.IllegalArgumentException
}
}