• 解析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
  • 相关阅读:
    Git
    Entropy, relative entropy and mutual information
    2021.5.3 团队冲刺第六天
    2021.5.2 团队冲刺第五天
    2021.5.1 团队冲刺第四天
    2021.4.30 团队冲刺第三天
    2021.4.29 团队冲刺第二天
    2021.4.28 团队冲刺第一天
    2021.4.27
    2021.4.26
  • 原文地址:https://www.cnblogs.com/shikyoh/p/2055196.html
Copyright © 2020-2023  润新知