集合并集
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);
}