首页 > 编程语言 >4-2-2.C# 数据容器 - HashSet(HashSet 的定义、HashSet 元素的基本操作、HashSet 元素的遍历、HashSet 的常用方法)

4-2-2.C# 数据容器 - HashSet(HashSet 的定义、HashSet 元素的基本操作、HashSet 元素的遍历、HashSet 的常用方法)

时间:2024-11-10 13:20:08浏览次数:3  
标签:Console nums 元素 HashSet Add WriteLine new 基本操作

HashSet 概述

  1. HashSet<T> 存储的元素是无序的

  2. HashSet<T> 存储的元素是不可重复的

  3. HashSet<T> 支持泛型,可以指定存储的元素的类型

  4. HashSet<T> 不支持索引,不可以通过索引获取或修改元素

  5. HashSet<T> 不是线程安全的,在多线程环境中需要谨慎使用


一、HashSet 的定义

  1. 定义 HashSet
HashSet<int> nums = new HashSet<int>();

HashSet<string> names = new HashSet<string>();
  1. 定义 HashSet 并填充一些元素
HashSet<int> nums = new HashSet<int> { 1, 2, 3 };

HashSet<string> names = new HashSet<string> { "tom", "jack" };

二、HashSet 元素的基本操作

1、HashSet 元素的添加
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);
2、HashSet 元素的访问
  • 注:HashSet 不支持索引,不可以通过索引获取或修改元素
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

foreach (int num in nums)
{
    Console.WriteLine(num);
}
# 输出结果

1
2
3

三、HashSet 元素的遍历

HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

foreach (int num in nums)
{
    Console.WriteLine(num);
}
# 输出结果

1
2
3

四、HashSet 的常用方法

1、HashSet 元素的检测
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

Console.WriteLine(nums.Contains(1));
Console.WriteLine(nums.Contains(2));
# 输出结果

True
True
2、HashSet 元素的删除
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

Console.WriteLine("删除元素之前");
foreach (int num in nums)
{
    Console.WriteLine(num);
}

nums.Remove(2);

Console.WriteLine("删除元素之后");
foreach (int num in nums)
{
    Console.WriteLine(num);
}
# 输出结果

删除元素之前
1
2
3
删除元素之后
1
3
3、HashSet 大小的获取
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

Console.WriteLine(nums.Count);
# 输出结果

3
4、HashSet 元素的清空
HashSet<int> nums = new HashSet<int>();

nums.Add(1);
nums.Add(2);
nums.Add(3);

Console.WriteLine("清空集合之前");
Console.WriteLine(nums.Count);

nums.Clear();

Console.WriteLine("清空集合之后");
Console.WriteLine(nums.Count);
# 输出结果

清空集合之前
3
清空集合之后
0

标签:Console,nums,元素,HashSet,Add,WriteLine,new,基本操作
From: https://blog.csdn.net/weixin_52173250/article/details/143643648

相关文章

  • 540. 有序数组中的单一元素
    文章目录问题描述解决思路代码示例复杂度分析问题描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复杂度和O(1)空间复杂度。解决思路题......
  • 3242. 设计相邻元素求和服务
    文章目录问题描述解决思路代码示例复杂度分析问题描述给你一个nxn的二维数组grid,它包含范围[0,n2-1]内的不重复元素。实现neighborSum类:neighborSum(int[][]grid)初始化对象。intadjacentSum(intvalue)返回在grid中与value相邻的元素之......
  • 每日一题.设计相邻元素求和服务;暴力算法与哈希表的运用
    本题出自LeetCode每日一题3242,可以说比昨天的那道“每日抑题”简单不少呀,就是代码长一点,同时本题目使用了两种不同的方法,并对每一种用法进行了深度解析。本文全长5000字。题目 给你一个 nxn 的二维数组 grid,它包含范围 [0,n2-1] 内的不重复元素。实现 neighbo......
  • 力扣21 打卡17 设计相邻元素求和服务
    思路:该方案通过构建一个字典,将每个元素值映射到其在二维数组中的坐标位置,以便快速查找。adjacentSum方法根据指定元素的坐标,计算其上下左右相邻元素之和;diagonalSum方法则计算该元素的四个对角线相邻元素之和。每个方法通过判断相邻坐标是否在数组边界内,确保不越界访问。......
  • 微信小程序获取某个元素或组件距离顶部的初始高度
    给元素加一个id然后使用wx.createSelectorQuery().select('#the-id').boundingClientRect(function(rect){rect.id//节点的IDrect.dataset//节点的datasetrect.left//节点的左边界坐标rect.right//节点的右边界坐标rect.top//节点的上边界坐标rect.bottom//节点的下......
  • Blender 点线面基本操作记录
    框选工具切换长按框选工具,会出现菜单栏连续选按住Shift可以连续选择选择最短路径按住Ctrl,选择2个点,会自动选中这2个点之间的最短路径反选Ctrl+I可以在模型反选没有选中的点全选把鼠标放在想要全选点的模型上,按"L"循环选择把鼠标放在想要循环选择的点位上,按住Alt,在......
  • C++——求一个3*3矩阵主对角线元素之和。
    没注释的源代码#include<iostream>usingnamespacestd;intmain(){   inta[3][3],sum=0;   cout<<"pleaseinputmartix:"<<endl;   for(inti=0;i<3;i++)   {       for(intj=0;j<3;j++)       {           cin......
  • 第八章: 8.10将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(四个角的元
    第八章:8.10将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(四个角的元素的顺序是从左到右,从上到下,依次从小到大存放)思考:1.输入矩阵的值inta[5][5]={0};   inti=0,j=0;   printf("请输入一个5*5的数组:\n");   for(i=0;i<5;......
  • JS操作元素
    一、事件基础事件概述JS使我们有能力创建动态页面,而事件是可以被JS侦测的行为简单理解:触发----响应机制网页中每个元素都可以产生某些可以触发JS的事件,例如点击事件事件是由三部分组成事件源事件类型事件处理程序称为事件三要素事件源:事件被触发的对象谁被触发事......
  • nodejs 18.20.4 juice 库将html中的全局CSS格式, 转化为每个元素内联的CSS格式
    执行下面命令,安装nodejs和npmubuntu@ubuntu22:~$sudoaptupdateubuntu@ubuntu22:~$sudoaptinstallnpm#npm是Node.js的包管理工具ubuntu@ubuntu22:~$sudoaptinstall-ycurlubuntu@ubuntu22:~$curl-fsSLhttps://deb.nodesource.com/setup_18.x|sudo-Eb......