using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Table_And_List
{ public class Program
{ public static void Main(string[] args)
{
int total = ;
int[] x = new int[];
for (int i = ; i < x.Length; i++)
{
x[i] = i;
}
int[] x2 = new int[] { , , , , };
int x3 = new Random().Next(total);
SortedDictionaryTest(x, x2, x3);
DictionaryTest(x, x2, x3);
SortedListTest(x, x2, x3);
HashtableTest(x, x2, x3);
Console.ReadKey();
} private static void SortedListTest(int[] x, int[] x2, int x3)
{
var ht = new SortedList();
Stopwatch watch = new Stopwatch();
watch.Start();
foreach (var item in x)
{
ht.Add(item, item);
}
watch.Stop();
Console.WriteLine(string.Format("SortedList添加{0}个元素耗时:{1}ms", x.Length, watch.ElapsedMilliseconds));
watch.Reset();
watch.Start();
foreach (var item in x2)
{
//Console.WriteLine("value:{0},?{1}",item,ht.ContainsKey(item));
ht.ContainsValue(item);
}
watch.Stop();
Console.WriteLine(string.Format("SortedList查找在100000个元素中查找随机的{0}个的元素耗时:{1}ms", x2.Length, watch.ElapsedMilliseconds));
ht.Clear();
}
private static void HashtableTest(int[] x, int[] x2, int x3)
{
Hashtable ht = new Hashtable();
Stopwatch watch = new Stopwatch();
watch.Start();
foreach (var item in x)
{
ht.Add(item, item);
}
watch.Stop();
Console.WriteLine(string.Format("Hashtable添加{0}个元素耗时:{1}ms", x.Length, watch.ElapsedMilliseconds));
watch.Reset();
watch.Start();
foreach (var item in x2)
{
//Console.WriteLine("value:{0},?{1}",item,ht.ContainsKey(item));
//ht.ContainsKey(item);
ht.ContainsValue(item);
}
watch.Stop();
Console.WriteLine(string.Format("Hashtable查找在100000个元素中查找随机的{0}个的元素耗时:{1}ms", x2.Length, watch.ElapsedMilliseconds));
ht.Clear();
} private static void DictionaryTest(int[] x, int[] x2, int x3)
{
Dictionary<int, int> ht = new Dictionary<int, int>();
Stopwatch watch = new Stopwatch();
watch.Start();
foreach (var item in x)
{
ht.Add(item, item);
}
watch.Stop();
Console.WriteLine(string.Format("Dictionary添加{0}个元素耗时:{1}ms", x.Length, watch.ElapsedMilliseconds));
watch.Reset();
watch.Start();
foreach (var item in x2)
{
//Console.WriteLine("value:{0},?{1}", item, ht.ContainsKey(item));
//ht.ContainsKey(item);
ht.ContainsValue(item);
}
watch.Stop();
Console.WriteLine(string.Format("Dictionary查找在100000个元素中查找随机的{0}个的元素耗时:{1}ms", x2.Length, watch.ElapsedMilliseconds));
ht.Clear();
} private static void SortedDictionaryTest(int[] x, int[] x2, int x3)
{
SortedDictionary<int, int> ht = new SortedDictionary<int, int>();
Stopwatch watch = new Stopwatch();
watch.Start();
foreach (var item in x)
{
ht.Add(item, item);
}
watch.Stop();
Console.WriteLine(string.Format("SortedDictionary添加{0}个元素耗时:{1}ms", x.Length, watch.ElapsedMilliseconds));
watch.Reset();
watch.Start();
foreach (var item in x2)
{
//Console.WriteLine("value:{0},?{1}", item, ht.ContainsKey(item));
//ht.ContainsKey(item);
ht.ContainsValue(item);
}
watch.Stop();
Console.WriteLine(string.Format("SortedDictionary查找在100000个元素中查找随机的{0}个的元素耗时:{1}ms", x2.Length, watch.ElapsedMilliseconds));
ht.Clear();
}
}
}

C# 集合性能比较(代码测试)的更多相关文章

  1. OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析

    欢迎转载,尊重原创,所以转载请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种访问矩阵元素的方法 ...

  2. 一些日常工具集合(C++代码片段)

    一些日常工具集合(C++代码片段) ——工欲善其事,必先利其器 尽管不会松松松,但是至少维持一个比较小的常数还是比较好的 在此之前依然要保证算法的正确性以及代码的可写性 本文依然会持久更新,因为一次写 ...

  3. OO_Unit2 关于性能优化与测试的那些事

    OO_Unit2 关于性能优化与测试的那些事 OO的第2单元到本周也就正式完结了.尽管这个单元的主旋律是多线程,但"面向对象"的基本思想仍然是我们一切架构与优化的出发点与前提.因此 ...

  4. Web 应用性能和压力测试工具 Gor - 运维生存时间

    Web 应用性能和压力测试工具 Gor - 运维生存时间 undefined 无需花生壳,dnspod实现ddns - 推酷 undefined

  5. Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

    测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...

  6. Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试

    日常啰嗦 看到标题你可能会问为什么这一篇会谈到代码测试,不是说代码优化么?前两篇主要是讲了程序的输出及Log4j的使用,Log能够帮助我们进行bug的定位,优化开发流程,而代码测试有什么用呢?其实测试 ...

  7. 进行app性能和安全性测试的重要性

    如何让用户感觉App运行速度更快呢,这需要对App进行性能测试.限制App性能的因素按照App的系统结构分为App自身和App需要用到的后台服务. 测试App连接网络的速度 一般采用在模拟Mock环境 ...

  8. HashMap在JDK1.8中并发操作,代码测试以及源码分析

    HashMap在JDK1.8中并发操作不会出现死循环,只会出现缺数据.测试如下: package JDKSource; import java.util.HashMap; import java.ut ...

  9. iOS 覆盖率检测原理与增量代码测试覆盖率工具实现

    背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...

随机推荐

  1. HDU 4276 The Ghost Blows Light(树形)

    题意:给出一棵n个节点的树,起点1,终点n,相连的两个节点之间有距离,每个节点有个价值,给出一个时间T.问从1到达n在给定时间T内取得的最大价值? 思路:先从1走到n,如果总的时间不够走完,直接退出, ...

  2. 《Programming WPF》翻译 第7章 6.视频和3-D

    原文:<Programming WPF>翻译 第7章 6.视频和3-D 虽然详细地讨论视频和3-D超越了这本书的范围,但是获得这些特征的支持是值得的. 视频由MediaElement类型支 ...

  3. Min and Max

    Min and Max 需要处理不同数据类型; 另外*args, 表示的是位置参数, *kwargs表示的是key参数, args的类型为tuple类型, 参数为min(3, 2)时, args为(3 ...

  4. 漏洞:WebRTC 泄漏用户IP

    WebRTC又称为“网页即时通信”,是一组API函数,它经过W3C组织的认证,支持浏览器之间的语音通话.视频聊天和P2P模式分享文件.      这个协议主要包括:getUserMedia,RTCPe ...

  5. OpensStack instance debug

    错误: 创建实例 "RuiyTest23" 失败: 请稍后再试 [错误: Virtual Interface creation failed].

  6. (转)Apache+Tomcat集群配置

    本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是ht ...

  7. [转]Laravel 4之验证

    Laravel 4之验证 http://dingjiannan.com/2013/laravel-validation/ 基本验证 使用Validator::make($data, $rules)验证 ...

  8. SmaterWeatherApi---签名加密和数据訪问--简单粗暴一步搞定

    -----------------------------------------------------更新-2014-07-09---------------------------------- ...

  9. 移动前端开发之 viewport 的深入理解

    移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响 ...

  10. javascript 模仿回车键事件

    <script> $(function(){ var _login = function (){ var _name = $('#name'); var _password = $('#p ...