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
  • 相关阅读:
    大数据经典学习路线(及供参考)
    Redis配置规范
    mysql中datetime和timestamp类型的区别
    bigint(10)和bigint(20)的区别
    Redis分布式锁,基于StringRedisTemplate和基于Lettuce实现setNx
    Spring security UserDetailsService autowired注入失败错误
    Java Print 打印
    Spring boot Junit Test单元测试
    RESTful作用与特性
    JS匿名函数理解
  • 原文地址:https://www.cnblogs.com/shikyoh/p/2055196.html
Copyright © 2011-2022 走看看