使用 CollectionUtils 中四个方法之一执行集合操作.这四种分别是 union(),intersection();disjunction(); subtract();

下列例子就是演示了如何使用上述四个方法处理两个 Collection;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.ArrayUtils;
public class CollectionUtilsIntro {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
String[] arrayA = new String[] { "", "", "", "", "", "" };
String[] arrayB = new String[] { "", "", "", "", "", "" };
List<String> a = Arrays.asList(arrayA);
List<String> b = Arrays.asList(arrayB);
//并集
Collection<String> union = CollectionUtils.union(a, b);
//交集
Collection<String> intersection = CollectionUtils.intersection(a, b);
//交集的补集
Collection<String> disjunction = CollectionUtils.disjunction(a, b);
//集合相减
Collection<String> subtract = CollectionUtils.subtract(a, b);
Collections.sort((List<String>) union);
Collections.sort((List<String>) intersection);
Collections.sort((List<String>) disjunction);
Collections.sort((List<String>) subtract);
System.out.println("A: " + ArrayUtils.toString(a.toArray()));
System.out.println("B: " + ArrayUtils.toString(b.toArray()));
System.out.println("--------------------------------------------");
System.out.println("Union(A, B): " + ArrayUtils.toString(union.toArray()));
System.out.println("Intersection(A, B): " + ArrayUtils.toString(intersection.toArray()));
System.out.println("Disjunction(A, B): " + ArrayUtils.toString(disjunction.toArray()));
System.out.println("Subtract(A, B): " + ArrayUtils.toString(subtract.toArray()));
}
}   输出如下:
  A: {,,,,,}
  B: {,,,,,}
  --------------------------------------------
  Union(A, B): {,,,,,,,,}
  Intersection(A, B): {,,}
  Disjunction(A, B): {,,,,,}
  Subtract(A, B): {,,}

JAVA集合操作的利器:CollectionUtils的更多相关文章

  1. JAVA 集合操作总结

    1.Collection 1.基本操作 对集合的基础操作 1.boolean add(Object o) //添加对象到集合 2.boolean remove(Object o) //删除指定的对象 ...

  2. JAVA集合操作异常 ---------Collections.unmodifiableCollection

    1.问题原因 这两天在做开发的时候,在一个首页的列表哪里操作了ArrayList集合,在做递归删除的时候用的是Iterator对象(至于为什么用,来个链接https://blog.csdn.net/m ...

  3. java 集合操作小结

    Map<String,String> m1=new HashMap<String,String>(); m1.put("zara", "name1 ...

  4. Java集合操作精华总结

    一.Set1.HashSet boolean add(E e) 添加 访问 boolean remove(E e) 删除 Iterator<E> iterator 遍历 int size( ...

  5. Java集合操作类Collections的一些常用方法

    public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); ...

  6. JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

    Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...

  7. java中的集合操作类(未完待续)

    申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...

  8. java的list集合操作List<T>转化List<Long>

    java的list集合操作List<T>转化List<Long> package com.google.common.collect; import com.google.co ...

  9. java集合并发操作异常解决方法:CopyOnWriteArrayList

    一.我们知道ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案 HashSet与ArrayList一致 HashMap HashSet底层是一个HashMap,存储的值放在Hash ...

随机推荐

  1. PAT 1089 狼人杀-简单版

    https://pintia.cn/problem-sets/994805260223102976/problems/1038429385296453632 以下文字摘自<灵机一动·好玩的数学& ...

  2. x86/x64的stack*****************************TBD

    1.push parameter, %rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数... 2. push return address 3. push ...

  3. Android 实现异步加载图片

    麦洛开通博客以来,有一段时间没有更新博文了.主要是麦洛这段时间因项目开发实在太忙了.今天周六还在公司加班,苦逼程序猿都是这样生活的. 今天在做项目的时候,有一个实现异步加载图片的功能,虽然比较简单但还 ...

  4. combobox下拉框

    ----------------------------------------------combobox下拉框----------------------------------------- f ...

  5. [CF45G]Prime Problem

    题目大意:将$1$到$n(1<n\leqslant6000)$分成若干组数,要求每组数的和均为质数,若存在一种分配方式,输出每个数所在的组的编号,有多组解输出任意一组解,若不存在,输出$-1$ ...

  6. BZOJ1044 [HAOI2008]木棍分割 【二分+Dp】

    1044: [HAOI2008]木棍分割 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4281  Solved: 1644 [Submit][St ...

  7. 【COGS 2434】 暗之链锁 树上差分+LCA

    差分就是把一个值拆成许多差的和如 1 2 4 6 9 那么 把这个东西拆成 1 1 2 2 3 就是了,当然也可以理解为对一个问题分解为多个子问题并对其进行操作来得到原问题的答案. 树上差分就更玄妙了 ...

  8. bzoj 2525 [Poi2011]Dynamite 二分+树形dp

    [Poi2011]Dynamite Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 270  Solved: 138[Submit][Status][D ...

  9. -webkit-overflow-scrolling:touch;

    -webkit-overflow-scrolling建了带有硬件加速的系统级控件,所以效率很高.但是这相对是耗更多内存的,最好在产生了非常大面积的overflow时才应用. 而且在 ios8  里有b ...

  10. jquery.cookie.js 的使用指南

    转自:http://www.cnblogs.com/yjzhu/p/4359420.html 介绍: jquery.cookie.js 是一款轻量级的 cookie 插件,可以读取,写入和删除 coo ...