`
韩悠悠
  • 浏览: 839875 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

泛型讨论------利用泛型求交集并集等数学知识

 
阅读更多

一个实用的Set例子

 

public class Sets{
	
	public static <T> Set<T> union<Set<T> a ,Set<T> b){
		
		Set<T> result = new HashSet<T>(a);
		result.addAll(b);
		return result;
	}

	public static <T> Set<T> intersection(Set<T> a,Set<T> b){
		Set<T> result  = new HashSet<T>(a);
		result.retailAll(b);
		return result;
	}

	public static <T> Set<T> difference(Set<T> a ,Set<T> b){
		Set<T> result = new hashSet<T>(a);
		result.removeAll(b);
		return result;
	}

	public static <T> Set<T> complement(Set<T> a, Set<T> b){
		return difference(union(a,b),intersection(a,b));
	}
}

 

 

前三种方法中,都是将第一个参数Set复制一份,将Set中的所有引用都存入一个新的HashSet对象中,因此我们并没有修改参数中的Set,返回的值是一个全新的Set对象。

union返回一个Set,它将俩个参数合并一起,interseciton返回的Set只包含俩个参数共同的部分,difference方法从a中包含b的元素,complement方法返回set包含除了交集之外的元素。

 

 

分享到:
评论

相关推荐

    commons-collections-3.2.1.jar,commons-dbcp-1.4.jar,commons-pool-1.6.jar

    - **集合操作**: 提供了如求并集、交集、差集等操作。 - **映射工具**: 支持多值映射、双向映射等复杂映射操作。 - **比较器**: 提供了多种比较策略,用于自定义对象的排序。 - **泛型**: 一些类支持泛型,增强了...

    C#List字典Dictionary泛型集合实例,源码

    `HashSet&lt;T&gt;`适用于快速检查元素是否存在,以及进行集合的并集、交集和差集操作。例如,你可以创建一个`HashSet&lt;int&gt;`来存储不重复的整数,`Add`方法会自动忽略已存在的元素,`Contains`方法则用于检查某个元素是否...

    数据结构 (C#语言版)

    - **栈的应用**: 表达式求值、括号匹配等。 **3.2 队列** - **队列的定义**: 先进先出(FIFO)的数据结构。 - **队列的基本运算**: 入队、出队、查看队首元素。 - **队列的应用**: 打印任务队列、消息队列等。 ### ...

    C++ 面向对象程序设计 对两个集合的操作 求交.求并....

    面向对象编程是C++语言的核心特性之一,它允许我们通过类和对象来组织代码,实现模块化和封装。...通过理解和实践这些知识点,你将能够熟练地在C++中进行面向对象的集合操作,实现高效的求交集和求并集算法。

    离散数学、数据结构、C.编程实训

    - **集合论**:学习集合的基本概念,如集合的表示、集合运算(交集、并集、补集),理解集合间的关系,为后续学习提供数学语言基础。 - **图论**:研究图的性质和应用,如图的连通性、路径、回路、树、二部图等,是...

    C#算法和数据结构学习

    - **集合论**: 数据结构的基础之一,了解集合的概念、运算(如并集、交集等)对于理解数据结构非常重要。 - **对数**: 在分析算法效率时会用到对数函数,特别是在讨论时间复杂度时。 - **递归**: 递归是一种强大...

    open!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    - **集合**:实现集合操作,如并集、交集等。 - **图**:图形数据结构及其相关操作。 - **树**:二叉树、红黑树等树形结构及其操作。 #### 绘图函数 - **线条和形状**:绘制直线、圆形、多边形等。 - **文本**:向...

    C#版数据结构(C#语言版)

    ### C#版数据结构知识点概览 #### 一、绪论 ##### 1.1 数据结构 **1.1.1 学习数据结构的必要...通过本书的学习,读者不仅可以掌握数据结构的基础知识,还能了解如何利用C#语言和.NET框架来实现高效的算法和数据结构。

    aduna-commons-collections-2.2.jar.zip

    此外,还有一些集合操作,如合并、交集、并集和差集,便于进行集合的数学运算。 6. **Bag接口和实现**:Bag接口代表了一种可重复元素的集合,它记录了每个元素出现的次数。Aduna Commons Collections提供了一些Bag...

    java中关于集合的操作

    - **并集、交集、差集**:`union()`, `intersection()`, `difference()`分别对应集合的并、交、差操作。 6. **泛型**: 泛型允许在集合中声明和使用特定类型的元素,提高代码安全性和可读性。 7. **并发集合**:...

    shapely-2.0.2-cp39-cp39-win_amd64.whl.zip

    Shapely还支持高级操作,如计算几何对象的交集、并集、差集和对称差集,以及测量距离和面积等。 Shapely库的版本“2.0.2”表明这是一个更新后的版本,可能包含了新的特性和性能优化。"cp39"表示这个版本是为Python ...

    Z specification

    **正式方法** 是指利用数学符号和逻辑推理来精确地描述和验证计算机系统的工具和技术。这些方法能够帮助开发者明确系统的需求,并通过数学证明来确保实现符合这些需求。具体到 Z 规范,它采用了一种清晰、结构化的...

    编程_集合运算_类模板_源码

    集合运算是基于数学中的集合论概念,如并集、交集和差集。类模板是C++语言中的一种重要特性,允许我们创建可重用的代码,以处理不同类型的对象。在本主题中,我们将深入探讨如何使用C++的类模板来实现集合运算。 ...

    swift-SwiftStructures-Swift中常用的数据结构和算法的示例

    Swift的Set类型同样支持泛型,并提供了交集(intersection),并集(union),差集(subtracting)等操作。集合的插入和删除操作通常比数组快,因为它们不需要保持元素的特定顺序。 4. **链表(Linked List)**: ...

    英文原版More C++

    - **集合算法**: 如并集、交集等。 - **成员函数**: 使用成员函数作为算法的比较器。 - **谓词**: 用于算法的条件函数。 ### 9. 练习:Dodgems 这是一个综合性的练习案例,涉及到数学计算、图形处理等多个方面。 #...

    Data-Structure-and-Algorithms:Python,JavaScript,C#,Java

    - 集合(Set):无序且不重复元素的集合,支持数学集合操作如并集、交集和差集。 - 字典(Dictionary):键值对的集合,通过键进行快速查找,适用于关联数据存储。 - 序列(Sequence)和容器(Container):...

    typescript-cheatsheet:具有最有用功能的TypeScript备忘单

    另请检查其他备忘单:目录泛型扩展泛型枚举常量和计算所得的枚举成员反向枚举成员进阶类型类型交集和并集防护罩类型别名条件类型索引类型推断符号模组命名空间环境模块装饰工发电机面试问题 类型,变量和函数...

Global site tag (gtag.js) - Google Analytics