C#哈希表(HashTable)和Dictionary比较
添加数据时Hashtable快。频繁调用数据时Dictionary快。
Dictionary<K,V>是泛型的,当K或V是值类型时,其速度远远超过Hashtable。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace WindowsFormsApp1
{
public class Student
{
private string _name;
private int _age; public string Name { get => _name; set => _name = value; }
public int Age { get => _age; set => _age = value; } }
}
private void button1_Click(object sender, EventArgs e)
{
Stopwatch sw = new Stopwatch(); Hashtable hashtable = new Hashtable(); Dictionary<int, Student> dict = new Dictionary<int, Student>(); int countNum = ;
sw.Start();
for (int i = ; i < countNum; i++)
{
Student s = new Student();
s.Name = "n" + i.ToString();
s.Age = i;
hashtable.Add(i, s);
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds); //输出: 817 sw.Restart();
for (int i = ; i < countNum; i++)
{
Student s = new Student();
s.Name = "n" + i.ToString();
s.Age = i;
dict.Add(i, s);
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds); //输出: 859 sw.Restart();
for (int i = ; i < countNum; i++)
{
hashtable.ContainsKey(i);
Student s1 =(Student)hashtable[i];
string str1 = s1.Name;
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds); //输出: 137 sw.Restart();
for (int i = ; i < countNum; i++)
{
dict.ContainsKey(i);
string str=dict[i].Name;
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds); //输出: 51 }
C#哈希表(HashTable)和Dictionary比较的更多相关文章
- C#中哈希表(HashTable)的用法详解以及和Dictionary比较
1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...
- 转 C#中哈希表(HashTable)的用法详解
看了一遍有关哈希表的文字,作者总结的真是不错 .收藏起来 1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提 ...
- 哈希表(hashtable)的javascript简单实现
javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...
- 哈希表(Hashtable)简述
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- c/c++ 哈希表 hashtable
c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...
- Java中哈希表(Hashtable)是如何实现的
Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...
- C# 哈希表HashTable的简单使用
本人C#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...
- C#中哈希表(HashTable)的用法详解
描述: 哈希表存放 key.values ,key值可以用于快速调取用,values 对应object类型,也就是说所有类型. 实例: 1.HashTable存放学生的成绩 Hashtable ht1 ...
- [PHP] PHP数组的实现哈希表(HashTable)结构
PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...
随机推荐
- Qt程序ibus输入法不跟随
在Qt程序中ibus框架的输入法无法跟随光标所在的位置,会出现如图所示的效果. 解决方法 安装qt4-qtconfig和ibus-qt4. 运行qtconfig,在界面-XIM输入风格中,选择光标跟随 ...
- bzoj3451 Normal
题意:点分治每次随机选重心,求期望复杂度. 发现一次点分治的复杂度就是点分树上每个节点的子树大小之和.(并没有发现......) 看这个. 注意这个写法有问题,随便来个菊花图就是n2了. 每一层点分治 ...
- 逆元&欧拉函数
欧拉函数: φ(p)表示小于p的正整数中与p互质的数的个数,称作欧拉函数. 求单个数的欧拉函数时可以利用来求 其中pi为p分解出的质因数,ki表示该质因数的指数 代码: #include<cst ...
- Linux网络基本网络配置
Linux网络基本网络配置方法介绍 网络信息查看 设置网络地址: cat /etc/sysconfig/network-scripts/ifcfg-eth0 你将会看到: DEVICE=eth0 BO ...
- maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式
maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式: 1.更改项目的jdk为我们安装的jdk2.更改build配置里的 output folder 目录为 xxx项目名/target ...
- Failed to load because no supported source was found
Uncaught (in promise) DOMException: Failed to load because no supported source was found? 等待解决:
- idea中gitlab新创建分支查找不到的原因
问题: 很多人说是这样解决: https://blog.csdn.net/rodulf/article/details/51536532 然后对于我来说没用............ 这里先说下如何从m ...
- 反射attr以及模块动态导入
一.实现自省的四个函数 1.hasattr判断一个对象中有没有一个name字符串对应的方法或属性 class BlackMedium: feture="Ugly" def __in ...
- VBScript入门篇
VBScript入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.定义一个过程 定义一个过程:可以将相同的操作的代码提取出来,方便其他人来调用这段代码,可以减少你的代码的重 ...
- cdqz2017-test8-Tree(点分树)
n个点的带点权带边权的树,设点权为a[i],边权为b[i] 一棵树有n*(n-1)/2个点对, 定义这棵树的价值为任意两点对的(a[x]^a[y])*dis(x,y) 有m次修改一个点的点权的操作 输 ...