java集合运算:求交集,并集,集合差

今天突然想用Java实现如何用集合实现交集,并集和差集的运算了!主要是看Python语言的时候想起来的。

实现主要使用的Set集合,Set集合的特点是集合内的元素不可重复。

具体代码如何:

 1 package com.chengxuyuanzhilu;
 2
 3 import java.util.HashSet;
 4 import java.util.Set;
 5
 6 public class CollectionOperation {
 7     public static void main(String[] args) {
 8         Set<Integer> result = new HashSet<Integer>();
 9         Set<Integer> set1 = new HashSet<Integer>() {
10             private static final long serialVersionUID = 1L;
11             {
12                 add(1);
13                 add(3);
14                 add(5);
15             }};
16
17         Set<Integer> set2 = new HashSet<Integer>(){
18             private static final long serialVersionUID = 1L;
19             {
20                 add(1);
21                 add(2);
22                 add(3);
23             }};
24
25         //交集
26         result.clear();
27         result.addAll(set1);
28         result.retainAll(set2);
29         System.out.println("交集:"+result);
30
31         //差集
32         result.clear();
33         result.addAll(set1);
34         result.removeAll(set2);
35         System.out.println("差集:"+result);
36
37         //并集
38         result.clear();
39         result.addAll(set1);
40         result.addAll(set2);
41         System.out.println("并集:"+result);
42
43     }
44 }

运行结果如下:

				
时间: 2024-10-07 08:25:15

java集合运算:求交集,并集,集合差的相关文章

Java里面如何求两个集合的交集

在Python里,或许我们没有这个烦恼,因为python里已经为我们提供了intersection这样的方法. 但是在Java里,就需要我们动一番脑筋了.这里浓重推荐下apache的CollectionUtils工具类. 方法签名如下所示: org.apache.commons.collections.intersection(final Collection a, final Collection b) 那么这个方法是怎么实现的呢?这里以list为例 public class TestInte

SQL求 交集 并集 差集

故事是这样的-.. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集-   -- 计算并集 SELECT DISTINCT colB FROM tb_test UNION SELECT DISTINCT colA FROM tb_test -- 计算交集 SELECT DISTINCT colB FROM tb_test INTERSECT SELECT DISTINCT colA FROM tb_test -- 计算差集 SELECT

VB.NET LINQ 操作数组代码(求交集,并集,差集,最值,平均,去重复)

Sub Main() Dim a As Integer() = {1, 2, 3, 4, 5, 6, 7} Dim b As Integer() = {4, 5, 6, 7, 8, 9, 10} Dim c As Integer() = {1, 2, 3, 3, 4, 1, 2, 4, 6, 1, 6, 5} ' 交集 Dim fuck = a.Intersect(b) ' 并集 Dim shit = a.Union(b) ' a有b没有的 Dim diff1 = a.Except(b) ' b

SQL之集合运算

UNION(并集)集合运算 1.UNION ALL集合运算 该集合运算返回在输入的多集中出现的所有行,它实际上不会对行进行比较,也不会删除重复行.假设查询Query1返回m行,查询Query2返回n行,则该集合运算后返回(m+n)行 1 SELECT country, region, city FROM HR.Employees 2 UNION ALL 3 SELECT country, region, city FROM Sales.Customers; 2.UNION DISTINCT集合运

详解SQL集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [

润乾集算报表非常规统计之集合运算

报表数据源计算中经常会使用到集合运算,SQL对集合运算的支持使得大部分简单的集合运算都能轻松完成.但是,当集合运算比较复杂,需要使用存储过程完成时,由于存储过程对集合运算的支持不够,也无法使用中间结果导致这类运算实现起来非常困难. 像http://bbs.csdn.net/topics/390902711中提到的问题,就是一个比较典型的复杂集合运算问题,这类计算往往都是为前台报表服务的,使用SQL和存储过程都很难完成.而一般的报表工具由于不具备强计算能力,对于这类计算更加无法完成. 使用润乾集算

详解SQL语句的集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 概述 本篇主要是对集合运算中并集.交集.差集运算基础的总结. 集合运算包含四种: 1.并集运算(两种) 2.交集运算 3.差集运算 下面是集合运算的思维导图: 为什么使用集合运算 1.在集合运算中比联接查询和EXISTS/NOT EXISTS更方便. 在阅读下面的章节时,我们可以先把环境准备好,以下的SQL脚本可以帮助大家创建数据库,创建表,插入数据. 一.集合运算 1.集合运算 (1)对输入的两个集合或

Linux 两个文件求交集、并集、差集

一.交集 sort a.txt b.txt | uniq -d 二.并集 sort a.txt b.txt | uniq 三.差集 a.txt-b.txt: sort a.txt b.txt b.txt | uniq -u b.txt - a.txt: sort b.txt a.txt a.txt | uniq -u 四.相关的解释 使用sort可以将文件进行排序,可以使用sort后面的玲玲,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等 uniq为删除文件中重

求两个集合的交集和并集C#

我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JiaoJi { class Program { static void Main(string[] args) { int [] arrA=new int[8]{1,2,3,4,5,6,7,8}; int [] arrB=new int[5]{4,5,

(一)Python入门-3序列:19集合-特点-创建和删除-交集并集差集运算

集合: 集合是无序可变,元素不能重复.实际上,集合底层是字典实现,集合的所有元素都是字典 中的“键对象”,因此是不能重复的且唯一的. 一:集合的创建和删除 1. 使用{}创建集合对象,并使用 add()方法添加元素 1 >>> a = {1,3,5} 2 >>> a 3 {1, 3, 5} 4 >>> a.add(7) 5 >>> a 6 {1, 3, 5, 7} 7 >>> a.add(5) 8 >>&