zoukankan      html  css  js  c++  java
  • C# 集合性能比较(代码测试)

    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 = 100000;
                int[] x = new int[9999999];
                for (int i = 0; i < x.Length; i++)
                {
                    x[i] = i;
                }
                int[] x2 = new int[] { 6666, 333, 11111, 56764, 33335 };
                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();
            }
        }
    }

  • 相关阅读:
    Mysql 取整的方法
    方法、选择比努力更重要, 所以既要低头干活,更要抬头看路!
    mysql索引
    MYSQL 存储过程 多表更新异常捕捉和异常处理方式
    JavaScript中in的用法
    中美印日四国程序员比较
    ubuntu下Django的下载与安装(三种方法)
    ubuntu下下载并安装H265(hm.x.x代码和X265代码)
    s3c-u-boot-1.1.6源码分析之一start.s
    s3c-u-boot-1.1.6源码分析
  • 原文地址:https://www.cnblogs.com/mingxuantongxue/p/3911316.html
Copyright © 2011-2022 走看看