- 如何创建一个HashSet?
- 如何从HashSet中删除元素?
- 设定作业
重要事项:
- HashSet类实现了ICollection, IEnumerable, IReadOnlyCollection, 我设置, IEnumerable, IDeserializationCallback和可序列化接口。
- 在HashSet中, 未定义元素的顺序。你无法对HashSet的元素进行排序。
- 在HashSet中, 元素必须是唯一的。
- 在HashSet中, 不允许重复的元素。
- 提供了许多数学设置操作, 例如交集, 并集和差。
- HashSet的容量是它可以容纳的元素数。
- HashSet是一个动态集合, 这意味着在添加新元素时, HashSet的大小会自动增加。
- 在HashSet中, 你只能存储相同类型的元素。
HashSet():它用于创建HashSet类的实例, 该实例为空, 并使用默认的相等比较器作为集合类型。
第1步:包括System.Collections.Generic在程序的帮助下命名空间使用关键词:
using System.Collections.Generic;
第2步:使用HashSet类创建一个HashSet, 如下所示:
HashSet<
Type_of_hashset>
Hashset_name = new HashSet<
Type_of_hashset>
();
第三步:如果要在HashSet中添加元素, 请使用加()在HashSet中添加元素的方法。你还可以使用集合初始化程序将元素存储在HashSet中。
步骤4:HashSet的元素通过使用前言循环。如下例所示。
例子:
// C# program to illustrate how to
// create hashset
using System;
using System.Collections.Generic;
class GFG {// Main Method
static public void Main()
{// Creating HashSet
// Using HashSet class
HashSet<
string >
myhash1 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash1.Add( "C" );
myhash1.Add( "C++" );
myhash1.Add( "C#" );
myhash1.Add( "Java" );
myhash1.Add( "Ruby" );
Console.WriteLine( "Elements of myhash1:" );
// Accessing elements of HashSet
// Using foreach loop
foreach ( var val in myhash1)
{
Console.WriteLine(val);
}// Creating another HashSet
// using collection initializer
// to initialize HashSet
HashSet<
int >
myhash2 = new HashSet<
int >
() {10, 100, 1000, 10000, 100000};
// Display elements of myhash2
Console.WriteLine( "Elements of myhash2:" );
foreach ( var valu in myhash2)
{
Console.WriteLine(valu);
}
}
}
输出如下:
Elements of myhash1:CC++C#JavaRubyElements of myhash2:10100100010000100000
如何从HashSet中删除元素?在HashSet中, 允许你从HashSet中删除元素。 HashSet < T> 类提供了三种不同的方法来删除元素, 这些方法是:
- 删除(T):此方法用于从HashSet对象中删除指定的元素。
- RemoveWhere(谓词):此方法用于从HashSet集合中删除所有与指定谓词定义的条件相匹配的元素。
- 明确:此方法用于从HashSet对象中删除所有元素。
// C# program to illustrate how to
// remove elements of HashSet
using System;
using System.Collections.Generic;
class GFG {// Main Method
static public void Main()
{// Creating HashSet
// Using HashSet class
HashSet<
string >
myhash = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash.Add( "C" );
myhash.Add( "C++" );
myhash.Add( "C#" );
myhash.Add( "Java" );
myhash.Add( "Ruby" );
// After using Remove method
Console.WriteLine( "Total number of elements present" +
" in myhash: {0}" , myhash.Count);
// Remove element from HashSet
// Using Remove method
myhash.Remove( "Ruby" );
// Before using Remove method
Console.WriteLine( "Total number of elements present" +
" in myhash: {0}" , myhash.Count);
// Remove all elements from HashSet
// Using Clear method
myhash.Clear();
Console.WriteLine( "Total number of elements present" +
" in myhash:{0}" , myhash.Count);
}
}
输出如下:
Total number of elements present in myhash: 5Total number of elements present in myhash: 4Total number of elements present in myhash:0
设定作业HashSet类还提供了一些用于对集合执行不同操作的方法, 这些方法是:
UnionWith(IEnumerable)
:
此方法用于修改当前的HashSet对象, 以包含其本身, 指定的集合或这两者中都存在的所有元素。
例子:
// C# program to illustrate set operations
using System;
using System.Collections.Generic;
class GFG {static public void Main()
{// Creating HashSet
// Using HashSet class
HashSet<
string >
myhash1 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash1.Add( "C" );
myhash1.Add( "C++" );
myhash1.Add( "C#" );
myhash1.Add( "Java" );
myhash1.Add( "Ruby" );
// Creating another HashSet
// Using HashSet class
HashSet<
string >
myhash2 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash2.Add( "PHP" );
myhash2.Add( "C++" );
myhash2.Add( "Perl" );
myhash2.Add( "Java" );
// Using UnionWith method
myhash1.UnionWith(myhash2);
foreach ( var ele in myhash1)
{
Console.WriteLine(ele);
}
}
}
输出如下:
CC++C#JavaRubyPHPPerl
IntersectWith(IEnumerable)
:
此方法用于修改当前HashSet对象, 使其仅包含该对象和指定集合中存在的元素。
例子:
// C# program to illustrate set operations
using System;
using System.Collections.Generic;
class GFG {// Main Method
static public void Main()
{// Creating HashSet
// Using HashSet class
HashSet<
string >
myhash1 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash1.Add( "C" );
myhash1.Add( "C++" );
myhash1.Add( "C#" );
myhash1.Add( "Java" );
myhash1.Add( "Ruby" );
// Creating another HashSet
// Using HashSet class
HashSet<
string >
myhash2 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash2.Add( "PHP" );
myhash2.Add( "C++" );
myhash2.Add( "Perl" );
myhash2.Add( "Java" );
// Using IntersectWith method
myhash1.IntersectWith(myhash2);
foreach ( var ele in myhash1)
{
Console.WriteLine(ele);
}
}
}
输出如下:
C++Java
ExceptWith(IEnumerable)
:
此方法用于从当前HashSet对象中删除指定集合中的所有元素。
例子:
// C# program to illustrate set operations
using System;
using System.Collections.Generic;
class GFG {// Main Method
static public void Main()
{// Creating HashSet
// Using HashSet class
HashSet<
string >
myhash1 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash1.Add( "C" );
myhash1.Add( "C++" );
myhash1.Add( "C#" );
myhash1.Add( "Java" );
myhash1.Add( "Ruby" );
// Creating another HashSet
// Using HashSet class
HashSet<
string >
myhash2 = new HashSet<
string >
();
// Add the elements in HashSet
// Using Add method
myhash2.Add( "PHP" );
myhash2.Add( "C++" );
myhash2.Add( "Perl" );
myhash2.Add( "Java" );
// Using ExceptWith method
myhash1.ExceptWith(myhash2);
foreach ( var ele in myhash1)
{
Console.WriteLine(ele);
}
}
}
【C#中的HashSet介绍与用法示例】输出如下:
CC#Ruby
推荐阅读
- FTE/6个月的亚马逊面试经验SDE-1实习– AmazeWow
- 算法题(如何检测检测链表中的循环())
- 算法题(如何计算矩形中的正方形数())
- 如何计算从mXn矩阵的左上角到右下角所有可能的路径()
- jQuery如何使用fadeToggle()方法(代码示例)
- 如何使用CSS创建波浪背景(代码示例)
- 在PHP数组中如何返回两个日期之间的所有日期()
- TypeScript数字valueOf()方法用法介绍
- JavaScript赋值运算符深入学习指南