3-2 集合的运算

集合的交集运算:深入探索与实例分析

引言

在数学的广阔领域中,集合论占据了基础而重要的地位。集合的运算,特别是集合的交运算,不仅揭示了集合间的内在联系,还为我们提供了一种强大的工具来处理和解析集合间的共同特性。本文旨在通过定义、实例和性质,深入探讨集合的交集运算。

集合的交集定义

定义 3-2.1

设有两个任意集合A和B,我们可以通过找出集合A和B的所有共同元素,组成一个新的集合S。这个由共同元素构成的集合S,称为A和B的交集,用符号“A∩B”表示。数学表达式为:S=A∩B={x|(x∈A)∧(x∈B)}。

图解交集

交集的概念可以通过文氏图直观地表示。图3-2.1展示了两个集合A和B,以及它们的交集A∩B,即图中两个圆形区域重叠的部分,包含了两个集合的共同元素。

实例分析

实例 1

考虑集合A={0,2,4,6,8,10,12}和集合B={1,2,3,4,5,6},它们的交集A∩B={2,4,6},即A和B共有的元素。

实例 2

如果集合A包含所有矩形,集合B包含平面上所有的菱形,则它们的交集A∩B包含所有正方形,因为正方形同时具备矩形和菱形的特性。

实例 3

设集合A包含所有被K整除的整数,集合B包含所有被L整除的整数,则A∩B包含的是被K和L的最小公倍数整除的整数集合。

集合交运算的性质

集合的交运算具备几个重要性质,如下:

  • 自反性:A∩A=A。一个集合与其自身的交集仍然是该集合。
  • 空集性质:A∩∅=∅。任何集合与空集的交集是空集。
  • 恒等性:A∩U=A。集合与全集的交集仍然是该集合。
  • 交换律:A∩B=B∩A。两个集合交集的顺序可以互换。
  • 结合律:(A∩B)∩C=A∩(B∩C)。多个集合进行交集运算时,括号的位置可以任意。

结合律的证明

通过集合运算法则,我们可以证明结合律的成立。即首先计算A∩B,然后与C的交集,结果与先计算B∩C,再与A的交集相同。这表明交集运算满足结合律,允许我们在处理多个集合的交集时,不必担心操作的顺序。

结论

集合的交运算不仅是集合论中的一个基本概念,也是数学中一个广泛应用的工具。通过交集,我们可以找到两个或多个集合共有的元素,这对于数学证明、逻辑分析等多个领域都至关重要。掌握了集合交运算的定义、性质及其应用,就能在数学的很多分支中运用自如。

我的发现:

我注意到这一节有很多证明从例题1的证明e)中我发现研究一个具体问题比如集合问题从定义出发开始证明然后得出一个一个性质

大师的看法:

研究数学的方法

确实,从定义出发是研究和证明数学问题,特别是集合论问题的一种基本方法。这种方法不仅适用于集合的交集运算,而且广泛适用于数学的其他领域。通过从最基本的定义开始,逐步推导、证明出更复杂的性质和定理,我们可以更深入地理解数学概念,同时确保我们的推理建立在坚实的基础之上。下面我们将通过一个具体的步骤来说明这一过程。

从定义出发

在数学中,定义是理解任何概念的起点。定义提供了一个明确的框架,说明了对象的基本性质和它们是如何相互关联的。在集合论中,了解集合的基本定义是至关重要的。

证明和推导(这里我们就懂得当我们对一个研究事物完成定义后下一步干什么)

一旦掌握了基本定义,下一步就是使用这些定义来证明新的性质或定理。这些证明通常通过逻辑推理进行,可能包括直接证明、反证法、数学归纳法等技巧。

实例分析

具体的例子和实例分析可以帮助我们更好地理解定义和证明。通过应用定义和已证明的性质到具体的问题上,我们可以看到数学概念是如何在实际情境中运作的。

得出性质

通过定义和证明,我们可以得出关于集合及其运算的性质。例如,在集合的交集运算中,我们从基本定义出发,可以证明交换律、结合律等性质。

应用

最后,得到的性质和定理可以应用于解决更复杂的问题或进行更深入的研究。每一个性质或定理的证明都为我们提供了新的工具和视角,以探索数学的丰富内容。

总结

从定义出发开始证明,然后逐步得出一个个性质,是数学研究的一种基本方法。这种方法不仅帮助我们构建数学知识的结构,而且也训练我们逻辑思维和问题解决的能力。在集合论这样的基础数学领域中,这种方法尤其重要,因为它帮助我们理解集合及其运算的本质,为深入研究数学的其他分支打下坚实的基础。

 学到了什么?

书中中的证明分析

书中中提到的证明涉及集合的交运算性质,特别是结合律的证明:

  • 结合律证明:展示了(A∩B)∩C=A∩(B∩C)。这个证明通过集合运算的基本定义,即元素属于交集的条件是它同时属于这些集合,来展示无论先计算哪个交集,结果是相同的。

数学思想

  • 基于定义的推理:此证明深入体现了基于定义进行推理的数学思想。一切从集合与元素属于该集合的基本定义出发,这是集合论和数学中的一项基本原则。从最基本的定义出发,可以推导出更加复杂的性质。
  • 普遍性与一般性:通过具体的证明展示了数学结构的普遍性和一般性。结合律不仅适用于集合的交运算,也是许多数学运算共有的性质,反映了数学概念的内在一致性。

数学方法

  • 逻辑构造:证明过程展示了逻辑构造的方法。通过设定变量x,然后探究x属于左侧集合等价于属于右侧集合,使用了逻辑连接词“且”(∧)来表达元素同时属于多个集合的条件。
  • 等价转换:在证明中,等价转换是核心步骤,通过展示两种不同形式的集合描述实际上是等价的,这种方法在数学证明中极为常见,强调了通过不同路径达到相同结论的可能性。

数学思维

  • 抽象思维:证明中的抽象思维体现在将具体的集合和元素抽象为符号和逻辑表达式。这种能力是数学思维的核心,允许我们从具体实例中抽离,探讨更一般的规律。
  • 批判性思维:分析和评估证明的过程中,需要批判性地考虑每一步逻辑是否成立,每一个结论是否严密。这种思维模式促进了深入理解证明的逻辑结构和潜在的假设。
  • 灵活运用逻辑运算:证明中灵活运用逻辑运算符“且”(∧),展示了在数学推理中对逻辑运算符的掌握和应用。这不仅是逻辑思维的体现,也是解决问题的重要工具。

结论

通过具体分析文本中的集合交运算的证明,我们可以看到,数学不仅仅是关于数字和公式的,它更是一种思考方式,一种用逻辑严密地分析和解决问题的方式。从定义出发,利用逻辑构造和等价转换,不仅可以证明特定的性质,还可以培养我们的抽象思维、批判性思维和逻辑运用能力。这些都是数学思维的重要组成部分,对于深入理解数学概念和技巧至关重要。

 

探索集合的并运算:定义、性质与定理深度分析

集合论是数学的一个基本分支,它不仅为我们提供了描述数学对象集合的语言,还介绍了如何对这些集合进行操作。在此篇博客中,我们专注于集合的一个核心操作——并运算。通过深入探究其定义、性质和相关定理,我们能够更好地理解这一操作的重要性及其在数学中的应用。

集合的并运算定义

定义 3-2.2

集合的并运算描述了两个集合合并的过程。具体来说,对于任意两个集合A和B,它们的并集(记作A∪B)包括所有属于集合A或B的元素。数学上表达为:S=A∪B={x|(x∈A)∨(x∈B)}。这个定义体现了并运算的基本思想:元素的归属不限于某一个集合,而是两者之中的任何一个。

并集的性质

集合的并运算遵循几个基本性质,这些性质不仅揭示了并集操作的内在逻辑,还展示了其与其他集合运算(如交集)的关系。

  • 幂等性:A∪A=A。一个集合与其自身的并集仍然是该集合。
  • 恒等性:A∪∅=A。任何集合与空集的并集仍是该集合。
  • 全集性:A∪U=U。集合与全集的并集是全集。
  • 交换律:A∪B=B∪A。两个集合的并集顺序是可交换的。
  • 结合律:(A∪B)∪C=A∪(B∪C)。多个集合并集时,括号的位置可任意。

并集的应用实例

考虑集合A={1,2,3,4}和集合B={2,4,5},它们的并集A∪B={1,2,3,4,5},直观地展示了并集如何将两个集合中的元素合并,而不重复计算共同元素。

定理与证明

分配律

集合的并运算满足分配律,这是理解集合操作中交互性质的关键。

  • 定理 3-2.1 描述了交集与并集之间的分配律:A∩(B∪C)=(A∩B)∪(A∩C) 和 A∪(B∩C)=(A∪B)∩(A∪C)。这些定理通过证明展示了如何将一个复杂的集合运算分解为更简单的多个步骤。

吸收律

  • 定理 3-2.2 显示了并集和交集操作的吸收律:AU(A∩B)=A 和 A∩(A∪B)=A。这些定理不仅简化了集合运算,还揭示了并集与交集之间的深刻联系。

子集与并集的关系

  • 定理 3-2.3 探讨了子集关系与并集操作之间的联系:A⊆B当且仅当A∪B=B。这一定理强调了并集操作在判断集合之间包含关系时的作用。

结论

集合的并运算是集合论中的一个基础而强大的工具,它不仅在数学内部有广泛应用,在解决现实世界问题时也非常有用。通过深入理解并集的定义、性质和相关定理,我们可以更加灵活地运用这一概念,进而解决更加复杂的问题。集合的并运算教会我们如何整合信息,识别不同集合之间的关系,以及如何利用这些关系来简化和解决问题,这些都是数学思维和方法的重要组成部分。

学到了什么? 

书中的证明分析

  1. 并集的性质证明

    • 幂等性(A∪A=A)和交换律(A∪B=B∪A)通过直接应用并集的定义进行证明,体现了基于定义的直接证明方法。
    • 结合律((A∪B)∪C=A∪(B∪C))的证明展示了通过将操作拆解为更基本的步骤,然后依据定义进行推导的技巧。
  2. 定理3-2.1的证明(分配律)

    • 这里的证明技巧涉及到等价转换和构造性证明。通过展示一个元素属于某个复合集合的条件等价于它属于另一个通过不同运算构造的集合,从而证明两个集合相等。
  3. 定理3-2.2的证明(吸收律)

    • 证明吸收律AU(A∩B)=A 和 A∩(A∪B)=A 展示了利用已知的并集和交集的性质进行逻辑推导的方法。这种证明不仅依赖于直接使用定义,还涉及到对性质的应用,从而简化证明过程。

从证明中学到的数学思想和方法

  1. 基于定义的证明

    • 从最基本的定义出发进行证明,是数学中一种常见且强大的方法。这种方法强调了理解定义的重要性,因为所有的性质和定理最终都要回归到定义上来证明。
  2. 等价转换

    • 在证明分配律时使用的等价转换技巧,是处理数学证明中复杂表达式的有效方法。通过展示不同形式的表达实质上描述了同一个集合,我们可以证明一些看似复杂的定理。
  3. 逻辑推导和构造性证明

    • 利用已知的性质和定理作为推导的基础,构造出证明的逻辑链条。这种方法展示了数学思维中的建构性特点,即如何基于已知建立新的知识。
  4. 分类讨论

    • 在处理并集和交集的性质时,经常需要对元素是否属于某个集合进行分类讨论。这种方法体现了解决数学问题时的分析和逻辑判断能力。

结论

通过具体分析文本中关于集合并运算的证明,我们不仅深入理解了并集的定义和性质,还学习了数学证明中的基本思想和方法。这些学习点体现了数学的精确性、逻辑性和创造性,对于培养严谨的数学思维和解决问题的能力极为重要。通过这些具体的证明实例,我们可以看到数学不仅仅是关于计算和公式,更重要的是一种思考和解决问题的方式。

 

 

探索集合的补运算:定义、性质与定理全面分析

集合论中的补运算是一个基本且强大的工具,它帮助我们理解和分析集合间的差异。本节将深入探讨集合的补运算,包括其定义、性质和相关定理,以展示其在数学中的重要性和应用。

集合的补运算定义

相对补集

对于任意两个集合A和B,A对B的补集(或称A减B)定义为所有属于A而不属于B的元素组成的集合,记作A - B。这一定义揭示了补集操作的本质——从一个集合中移除另一个集合的元素。

绝对补集

当我们将讨论范围限制在一个全集E内时,任一集合A的绝对补集定义为不属于A的全集E中的所有元素,记作~A。这种补集展示了集合与其环境(全集)之间的关系。

补集的性质

通过定义,我们可以直接推导出补集运算的一些基本性质:

  • 双重补集:对于任意集合A,其补集的补集是其本身,即~(~A) = A。
  • 全集与空集的补集:全集的补集是空集,空集的补集是全集,即~E = ∅,~∅ = E。
  • 并集与补集的关系:集合A和其补集的并集等于全集,A与其补集的交集为空集,即A∪A = E,A∩A = ∅。

定理与证明

德摩根定理

德摩根定理是补集运算中的重要定理,它描述了并集和交集运算的补集之间的关系:

  • 对于任意两个集合A和B,(A∪B) = A∩B,且(A∩B) = A∪B。这些定理通过逻辑等价转换进行证明,展示了补集与并、交运算之间的深刻联系。

集合差的性质

  • 集合A和B的差A - B可以表示为A∩~B,这表明集合差实际上是特定类型的交集。此外,A - B也等价于A - (A∩B),这进一步揭示了集合差与交集的关系。

子集与补集的关系

  • 若A⊆B,则B⊆A。这意味着如果一个集合是另一个集合的子集,那么后者的补集是前者补集的子集。
  • 对于任意两个集合A和B,若A⊆B,则(B - A)∪A = B。这个定理说明了从B中移除A后再与A并集,得到的仍然是B。

结论

集合的补运算不仅是集合论中的一个基础概念,也是理解和分析集合之间关系的重要工具。通过补集,我们可以更好地理解集合之间的差异,以及如何从全集中分离特定的元素集。补集的性质和相关定理,如德摩根定理,提供了强大的方法来处理复杂的集合运算,展示了数学思维的精妙和深邃。学习和理解补集及其性质,对于深入掌握集合论乃至整个数学领域都是极为重要的。

学到了什么?

书中的证明分析

德摩根定理的证明

德摩根定理的证明提供了一个绝佳的例子,展示了如何通过集合运算的基本原理来证明较为复杂的集合关系。证明过程中,通过逻辑推理将复合集合运算分解为基本运算,这一点具体体现在~(A∪B) = A∩B和~(A∩B) = A∪B的证明中。

集合差的证明

集合差的证明,如A - B = A∩~B,展示了如何将集合差运算转化为更基本的交集和补集运算。这不仅是一个证明技巧,也反映了数学中将复杂问题简化的思想。

从证明中学到的数学思想和方法

逻辑推理和等价转换

德摩根定理的证明中,通过将复杂的集合运算分解,并使用逻辑等价转换,体现了数学证明中逻辑推理的重要性。这种方法教会我们如何通过基本原理和定义来解构并理解复杂的数学关系。

集合运算的基本性质

通过集合差和补集的证明,我们学到了如何利用集合运算的基本性质(如补集、交集)来表达和证明其他集合运算(如集合差)。这种方法体现了数学中通过已知性质来探索未知领域的思维方式。

构造性思维

在证明集合差等于集合与另一集合补集的交集时,我们看到了构造性思维的应用。这种思维方式涉及到如何通过构造特定的集合或条件来达成证明目的,是解决数学问题的一种重要方法。

分类讨论

德摩根定理的证明过程中,需要对元素是否属于某个集合进行分类讨论,这反映了分类讨论在数学证明中的重要性。它帮助我们明确不同情况下的逻辑关系,是一种有效的解题策略。

结论

通过具体分析文本中关于集合补运算的证明,我们深入理解了数学思维和证明方法的重要性。这些证明不仅展示了如何应用集合论的基本概念和性质来解决问题,也展示了数学思维的广度和深度。从这些证明中,我们学习到的不仅仅是集合论的知识,更重要的是,我们学会了如何通过逻辑推理、等价转换、构造性思维和分类讨论等方法来探索和证明数学中的复杂关系。这些技巧和方法对于提高我们的逻辑思维能力和解决复杂问题的能力具有重要价值。

 

 

探索集合的对称差:深入解析与性质探讨

在集合论的世界中,对称差运算提供了一种独特的视角来探讨集合之间的关系。本节将深入探讨集合的对称差,包括其定义、性质以及如何通过证明来理解这些性质。

集合的对称差定义

对称差,标记为A+B,定义为集合A和B中属于其中一个但不同时属于两个集合的所有元素组成的集合。数学上表达为:S=A+B=(A−B)∪(B−A)。这个定义揭示了对称差的本质:它筛选出只属于A或B的元素,而排除了共同元素。

对称差的性质

对称差运算遵循几个基本性质,体现了其在集合运算中的特殊地位:

  1. 交换律:A+B=B+A。对称差不受元素排列顺序的影响。
  2. 空集的对称差:A+∅=A。任何集合与空集的对称差仍为该集合。
  3. 自身的对称差:A+A=∅。集合与其自身的对称差为空集。
  4. 表达式:A+B=(A∩∼B)∪(∼A∩B)。提供了另一种视角来看待对称差。
  5. 结合律:(A+B)+C=A+(B+C)。对称差的运算顺序可任意调换。

性质的证明与分析

特别是对于结合律的证明,它不仅展示了对称差的灵活性,也体现了集合运算之间的深刻联系。通过将对称差分解为基本运算,并利用集合的补集和交集的性质,我们可以详细展开并证明对称差的结合律。这种证明过程不仅加深了我们对集合运算性质的理解,也展示了数学证明中的逻辑推理和构造性思维。

对称差的图解和应用

通过文氏图,我们可以直观地看到对称差如何将属于A或B但不共同属于二者的元素组合起来。文氏图提供了一种直观的方法来理解和验证集合运算的性质,是学习集合论的有力工具。

此外,对称差在处理集合间的差异性问题时非常有用。它不仅在数学理论中有广泛应用,在计算机科学、数据分析等领域也非常重要,特别是在处理集合数据和解决分类问题时。

结论

集合的对称差是集合论中一个非常有趣和有用的概念。通过深入探讨其定义、性质以及性质的证明,我们不仅可以更好地理解集合之间的关系,还可以学习到数学证明的逻辑和方法。对称差的研究不仅加深了我们对集合论的认识,也提高了我们解决问题和进行数学证明的能力。

学到了什么?

文本中的证明分析:集合对称差的结合律

文本中提供的结合律证明,即(A+B)+C=A+(B+C),采用了一种分步骤的方法来展开证明。证明首先通过对称差的定义将其转化为基于集合差和并集的表达式,然后利用集合的补集和交集运算来进一步分析和简化表达式。

这一证明特别利用了集合运算的性质,如交集、并集和补集的基本规则,以及集合运算的分配律,来逐步展示(A+B)+C和A+(B+C)在逻辑上的等价性。

从证明中学到的数学思想

  1. 集合运算的灵活性:证明展示了集合运算(特别是对称差、补集、交集和并集)的灵活应用,强调了在解决集合论问题时,运算之间是如何相互转换和相互作用的。

  2. 逻辑结构的重要性:通过系统地应用集合运算的性质来达成证明目的,体现了在数学证明中构建清晰逻辑结构的重要性。

数学思维

  1. 综合思维:此证明要求我们不仅理解每个集合运算的定义,还需要看到这些运算如何共同作用来形成更复杂的结构,体现了综合不同数学概念和方法来解决问题的思维方式。

  2. 逆向思维:在处理对称差的结合律时,逆向分解运算过程,从期望的结果反推所需的性质,这种逆向思维是解决复杂数学问题的有效策略。

数学证明技巧

  1. 等价转换:证明过程中,通过将复杂的集合表达式转换为等价的简化形式,展示了等价转换在简化问题和阐明问题本质中的关键作用。

  2. 分解与重组:证明中将对称差运算分解为更基本的集合运算步骤,然后再逐步重组,以证明最初的结合律,这种分解与重组的技巧是数学证明中常用的方法。

数学证明方法

  1. 直接证明:通过直接操作集合运算的性质和规则,逐步展示结合律成立的过程。这种方法体现了直接证明在数学中的普遍应用。

  2. 构造性证明:证明中通过构造特定的集合运算过程,来展示结合律的成立,这反映了构造性证明在揭示数学结构和性质中的价值。

结论

通过具体分析集合对称差的结合律证明,我们深入理解了集合运算的内在逻辑和相互关系,以及在进行数学证明时如何有效地应用这些运算和性质。这一过程不仅加强了我们对集合理论的理解,也提升了我们的数学思维和证明能力,展示了数学证明的深度和广度,以及在解决问题时的创造性和逻辑性。

 

 

 

 

 

 

 

 

求交集和并集的线性算法(原创) 对于给定的两个集合,使用哈希表可以在线性时间复杂度内得到他们的交集和并集,具体说明如下: 假设有集合A={1, 7, 5, 13, 9, 10, 11}, B={5, 7, 10, 1, 18, 12}, 1)求交集,需要得到结果:A∩B={1, 5, 7,10} 思路如下: ①建立一个哈希表(HashTable),其键(KEY)表示集合中数字的值,其值(VALUE)表示集合中数字出现的次数 ②遍历集合A,将集合中的每个数字(KEY)插入哈希表,每个数字的出现次数(VALUE)设置为1 ③遍历集合B,对于集合中的每个数字: 如果哈希表中已经存在该数字,将对应的VALUE改为2 如果哈希表中不存在该数字,忽略 ④遍历哈希表,输出VALUE为2的数字,即得到A和B的交集 2) 求并集,需要得到结果:AUB={1,5,7,9,10,11,12,13,18} 思路如下: ①建立一个哈希表(HashTable),其键(KEY)表示集合中数字的值,其值(VALUE)可以无视 ②遍历集合A,将集合中的每个数字(KEY)插入哈希表 ③遍历集合B,对于集合中的每个数字: 如果哈希表中已经存在该数字,忽略 如果哈希表中不存在该数字,将这个数字插入哈希表 ④遍历哈希表,输出哈希表中的每个KEY,即为A和B的并集 上面以两个集合为例说明了交集和并集的求法,事实上,上述算法可以很方便的扩展到3个或3个以上的集合 的求交集和求并集。另外求并集时,由于哈希表的值(VALUE)部分不需要用到,所以这个数据结构也可以更换为 哈希集(HashSet)。 转载请注明出处。 VB中HashTable 2012-08-20 14:43:21| 分类: asp.net|举报|字号 订阅 首先定义一个hashtable Dim hstl As New Hashtable hstl.Add(key, value) &#39;java是用.put MS开始全面模仿java 这说说vb.net中的hashtable基本用法: 添加值:hstl.add(key,value) 通过key取值: hstl.Item(key).ToString 判断是否含有Key: ContainsKey(key) 判断是否含有value: ContainsValue(value) 遍历hashtable: Dim de As DictionaryEntry &#39;泛型类 For Each de In hstl console.write(de.key & de.value) Next de hashtable不支持通过value取key. 求2集合的交集 第一种方法 最简单、粗暴的循环遍历2集合,判断如果有相同的元素就取出来。假设集合1的长度为M,集合2的长度为N,那么,时间复杂度为:O(M*N) 代码: public static List GetIntersection(List list1, List list2) { List list3 = new List(); //第一种方法:循环遍历 //O(n×m) for (int i = 0; i < list1.Count; i++) { for (int j = 0; j < list2.Count; j++) { if (list1[i]==list2[j]) { list3.Add(list1[i]); } } } return list3; } 第二种方法 利用hash这种很有用的数据结构来实现。我们知道,hash的特点之一就是不允许有重复元素,即hash表中的元素都是唯一的。所以,我们的思路就是:先把第一个集合的所有元素都放进hashSet中,时间复杂度O(M);再把第二个集合中的元素放进hashSet中,如果有重复元素,就是这2集合的交集,时间复杂度为O(N)。即总的时间复杂度从O(M*N)降低到了O(M+N)。 代码: public static List GetIntersection2(List list1, List list2) { //第二种方法:hash List list3 = new List(); HashSet hashSet = new HashSet(); foreach (string item in list1) { hashSet.Add(item); } foreach (string item in list2) { if (hashSet.Add(item) == false) { list3.Add(item); } } return list3; } 测试 代码: static void Main(string[] args) { List list1 = new List(); list1.Add("apple"); list1.Add("banana"); list1.Add("pear"); list1.Add("orange"); list1.Add("grape"); List list2 = new List(); list2.Add("nokia"); list2.Add("sumsung"); list2.Add("htc"); list2.Add("apple"); list2.Add("orange"); List list =new List(); //test for two set join //list = TwoSetsIntersection.GetIntersection(list1, list2); list = TwoSetsIntersection.GetIntersection2(list1, list2); foreach (string item in list) { Console.Write(item + "\t"); } } 总结 hash的另一个特点是查找效率为O(1),惊人的高! 对于这道题目要是算出来O(M*N)的同学就应该补课了。出来混,迟早要还的。 HashSet类 HashSet类主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素。 HashSet的一些特性如下: 1、HashSet中的值不能重复且没有顺序。 2、HashSet的容量会按需自动添加。 构造方法: HashSet() 默认相等比较器创建一个空的新实例。 HashSet(IEnumerable collection)  把指定集合中的collection中的数据复制到集中 HashSet(IEqualityComparer comparer)  使用指定的相等比较器创建一个空的新实例 HashSet(IEnumerable collection,IEqualityComparer comparer)  使用指定的比较器实例化数据,且将指定集合中的元素复制到集合中。 因为HashSet是专门设计来做集合运算的,因此它提供的方法中有不少是和集合运算相关的。 以下给出它的一些常用方法介绍 成员        类型        说明 Add        方法        将指定的元素添加到集合中 Clear        方法         清空集合中的所有元素 Contains     方法         确定某元素是否在HashSet中 Exists       方法         确定HashSet是否包含于指定条件相匹配的元素 ExceptWith    方法         从当前HashSet移除指定集合中的所有元素 IntersectWith   方法        修改当前的HashSet对象,以仅包含该对象和指定集合中存在的元素 IsProperSubsetOf  方法        确定HashSet对象是否为指定集合的真子集 IsProperSupersetOf 方法        确定HashSet对象是否为指定集合的真超集 IsSunsetOf     方法         确定HashSet对象是否为指定集合的子集 IsSupersetOf    方法         确定HashSet对象是否为指定集合的超集 Remove      方法         从HashSet对象中移除指定的元素 RemoveWhere   方法         从HashSet集合中移除与指定谓词所定义的条件相匹配的所有元素 SetEquals     方法         确定HashSet对象与指定的集合中是否包含相同的元素 SynmmetricExceptWith  方法     修改当前的HashSet对象,以仅包含该对象或指定集合中存在的元素 TrimExcess    方法         将HashSet对象的容量设置为它所包含的元素的实际个数,向上舍入为接近的特性与实现的值。 UnionWith     方法         修改当前的HashSet对象,以包含该对象本身和指定集合中存在的所有元素 给个简单的例子,写不完的,总之记得HashSet主要的作用是用来进行,交集、并集等运算的就OK了。 static void Main(string[] args) { HashSet hs = new HashSet(); hs.Add("你"); hs.Add("好"); hs.Add("吗"); HashSet hs1 = new HashSet(); hs1.Add("你"); hs1.Add("好"); bool b = hs1.IsProperSubsetOf(hs); //确定hs1是否是hs的真子集 Console.WriteLine(b); //输出True HashSet hs2 = new HashSet(); hs2.Add("爱你"); IEnumerable list = hs.Union(hs2); //返回并集 foreach (string str in list) { Console.WriteLine(str); //输出 你 好 吗 爱你 } Console.ReadKey(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值