zoukankan      html  css  js  c++  java
  • 解析Hashtable、Dictionary、SortedDictionary、SortedList的效率

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;

    namespace DictionaryTest
    {
    class Program
    {
    private static int totalCount = 10000;

    static void Main(string[] args)
    {
    HashtableTest();
    DictionaryTest();
    SortedDictionaryTest();
    Console.ReadKey();
    }

    private static void HashtableTest()
    {
    Hashtable hastable
    = new Hashtable();
    Stopwatch watch
    = new Stopwatch();
    watch.Start();
    for (int i = 1; i < totalCount; i++)
    {
    hastable.Add(i,
    0);
    }
    watch.Stop();
    Console.WriteLine(
    string.Format("Hashtable添加{0}个元素耗时:{1}ms", totalCount, watch.ElapsedMilliseconds));
    Console.WriteLine(
    "Hashtable不做查找测试");
    hastable.Clear();
    }

    private static void DictionaryTest()
    {
    Dictionary
    <int, int> dictionary = new Dictionary<int, int>();
    Stopwatch watch
    = new Stopwatch();
    watch.Start();
    for (int i = 1; i < totalCount; i++)
    {
    dictionary.Add(i,
    0);
    }
    watch.Stop();
    Console.WriteLine(
    string.Format("Dictionary添加{0}个元素耗时:{1}ms", totalCount, watch.ElapsedMilliseconds));
    watch.Reset();
    watch.Start();
    dictionary.Select(o
    => o.Key % 1000 == 0).ToList().ForEach(o => { });
    watch.Stop();
    Console.WriteLine(
    string.Format("Dictionary查找能被1000整除的元素耗时:{0}ms", watch.ElapsedMilliseconds));
    dictionary.Clear();
    }

    private static void SortedDictionaryTest()
    {
    SortedDictionary
    <int, int> dictionary = new SortedDictionary<int, int>();
    Stopwatch watch
    = new Stopwatch();
    watch.Start();
    for (int i = 1; i < totalCount; i++)
    {
    dictionary.Add(i,
    0);
    }
    watch.Stop();
    Console.WriteLine(
    string.Format("SortedDictionary添加{0}个元素耗时:{1}ms", totalCount, watch.ElapsedMilliseconds));
    watch.Reset();
    watch.Start();
    dictionary.Select(o
    => o.Key % 1000 == 0).ToList().ForEach(o => { });
    watch.Stop();
    Console.WriteLine(
    string.Format("SortedDictionary查找能被1000整除的元素耗时:{0}ms", watch.ElapsedMilliseconds));
    dictionary.Clear();
    }
    }
    }
    全文:http://www.cnblogs.com/moozi/archive/2010/05/23/1741980.html
  • 相关阅读:
    原型模板分享——国外高阶版“大众点评”TripAdvisor
    插画手绘入门教程
    十大用户体验设计失败案例,你知道吗?
    用摹客,轻松管理设计规范!
    摹客“独门绝技”之评论审阅篇
    政务管理系统原型模板分享
    产品经理如何做需求分析?
    python基础知socket编程
    异常处理
    元类,__call__方法和单例模式
  • 原文地址:https://www.cnblogs.com/shikyoh/p/2055196.html
Copyright © 2011-2022 走看看