使用 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[] { "1", "2", "3", "3", "4", "5" };
String[] arrayB = new String[] { "3", "4", "4", "5", "6", "7" };
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: {1,2,3,3,4,5}
B: {3,4,4,5,6,7}
--------------------------------------------
Union(A, B): {1,2,3,3,4,4,5,6,7}
Intersection(A, B): {3,4,5}
Disjunction(A, B): {1,2,3,4,6,7}
Subtract(A, B): {1,2,3}
分享到:
相关推荐
尚硅谷Java开发利器:IntelliJ IDEA的安装、配置与使用
无线蹭网最新利器:Beini v1.2.11.iso,naiping yingyong
Spring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLI
AOP 的利器:ASM 3_0 介绍,很好的书
编程利器:ChatGPT实战指南.pdf
Javascript的调试利器:Firebug使用详解
高性能的Web开发利器:深入探索Golang Echo框架
轻巧远程利器:AnyDesk v1.3 BetaAnyDesk,流畅远程控制软件,操作简单实用,而且挺容易上手。
提速利器:RFID技术应用于物流配送.pdf
LabView Modbus-TCP与西门子PLC通讯利器:全面兼容数据类型,高效稳定,跨品牌扩展,上下位机源码全支持,助力工程师省时开发,Labview Modbus-Tcp和西门子全糸列pLC通讯所有数据类型均能读写,速度快,使用在多个...
通达信指标公式源码 波段操盘利器:短线必赢.doc
通达信指标公式源码短线利器:力量压 副图源码.doc
MATLAB SIMULINK模型测试利器:自动化测试工具、自动生成报告,环MIL测试能力展示,纯软件编写易操作参考截图,MATLAB SIMULINK模型在环MIL测试工具,自动化模型测试工具,自动生成测试报告。 软件纯自己编写,经过长...
delphi 开发网页利器:DeWeb,可以直接将Delphi程序快速转换为网页应用的工具!使用DeWeb, 开发者不需要学习HTML、JavaScript、Java、PHP、ASP、C#等新知识,用Delphi搞定一切。DeWeb开发的网页支持所有客户端,包括...
_基于Docker的Django开发利器:一套高效的基于Docker的Django_3.2开发和部_DjangoOnDocker
一站式开发利器:Java 8 & Postman 集成套装 为加速软件开发与测试流程,特别推出集成套装,包含JDK 8 Update 131(64位)、Postman JAR文件及Postman 7.36.0 Windows 64位安装包。此套装旨在优化工作环境,实现从...
【保姆级IDF】ESP32调试利器:xtensa-esp32-elf-addr2line介绍、安装、使用