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
  • 相关阅读:
    python 开启多进程的两种方法
    Python
    Python
    路由器配置
    python 自定义报头 实现大文件传输
    python socket
    Spring MVC 实现文件的上传
    SpringMVC异常处理
    SpringMVC 返回值类型,参数传递 解决乱码
    Spring—MVC案例
  • 原文地址:https://www.cnblogs.com/shikyoh/p/2055196.html
Copyright © 2011-2022 走看看