相关疑难解决方法(0)

为什么Dictionary优先于Hashtable?

在大多数编程语言中,字典比散列表更受欢迎.这背后的原因是什么?

.net c# vb.net data-structures

1348
推荐指数
17
解决办法
52万
查看次数

如果值是对象并且这些对象的属性是键,那么是否有比Dictionary更好的数据结构?

我有一个Dictionary<int, object>int是的属性obj.有没有更好的数据结构?我觉得使用属性是关键是多余的.

Dictionary<int, obj>是容器类中的一个字段,允许obj根据intid号随机索引值.容器类中的简化(无异常处理)索引器如下所示:

obj this[int id]
{
     get{ return this.myDictionary[id];}
}
Run Code Online (Sandbox Code Playgroud)

myDictionary前面Dictionary<int, obj>拿着物体在哪里.

这可能是快速随机访问的典型方式,但我想获得第二意见.

c# idictionary

7
推荐指数
2
解决办法
1927
查看次数

采访与Hashtable和词典有关的问题

我最近在几次关于Hashtables的访谈中进行了深入研究,并且何时需要覆盖GetHashCode().讨论一直在深入和深入,直到我全身心投入.

我现在正在做一些研究,以涵盖下一次准备好的一切.

我找到了这篇我想分享的优秀文章:http: //msdn.microsoft.com/en-us/library/ms379571(VS80).aspx #datastructures20_2_topic5

1)我感觉不太舒服的事实是字典是基于哈希的,但列表显然不是.这只是意味着在List <>和Array []中搜索是线性的,而在字典或散列表中搜索是不变的,因此更快?这都是它的全部吗?

2)如果我使用类作为字典中的键,我需要根据任何必需的标识字段覆盖该类的GetHashcode()以使实例唯一.但是,仍然可能发生两个ID字段相等并且将生成相同的哈希码?如果这是两个实例与相同哈希码冲突期间发生的情况?

3)如何解决碰撞?我在文章中读到了关于Hashtable和Chaining for the Dictionary的碰撞情况下的rehashing方法.但我仍然不确定它是如何工作的,因为我不是数学天才.: - \任何人都可以更好地解释它是如何工作的?

非常感谢,Kave

.net

6
推荐指数
1
解决办法
5392
查看次数

HashTable或字典查找时间

HashTable或Dictionary的查找时间是否始终为O(1),只要它具有唯一的哈希代码?

如果HashTable有1亿行,那么查找具有1行的内容需要相同的时间吗?

c# dictionary hashtable

5
推荐指数
1
解决办法
5190
查看次数

Dictionary和Hashtable之间的主要区别是什么

Dictionary和Hashtable有什么区别.我怎样才能得出哪些结论可以使用?有人可以帮帮我吗?

.net c# collections

5
推荐指数
1
解决办法
6091
查看次数

通过字符串属性快速查找对象

我有通过其字符串属性快速查找对象的任务.宾语:

  class DicDomain
  {
    public virtual string Id{ get; set; }
    public virtual string Name { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

为了存储我的对象,我使用List [T]字典,其中T现在是DicDomain.我有5-10个这样的列表,每个列表包含大约500-20000.任务是按名称查找对象.我现在使用下一个代码:

  List<T> entities = dictionary.FindAll(s => s.Name.Equals(word, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)

我有一些问题:

我的搜索速度是否最佳.我想现在.

  1. 数据结构.它列出了这项任务的好处.哈希表怎么样,排序......
  2. 方法查找.可能是我应该使用字符串实习生?

我对这些任务没什么好处.你可以给我一些提高性能的好建议吗?谢谢

.net c# optimization

3
推荐指数
1
解决办法
673
查看次数

Hashtable vs Dictionary:更快?

可能这个问题以前已经多次回答过很多次.然而,我正在寻找更具体的东西.我认为通用字典比Hashtables更快,因为它们不需要经历装箱/拆箱的过程.

但是,哈希表是否排序,这意味着搜索速度更快?由于键被散列和存储,搜索时是否会涉及装箱/拆箱?

c#

3
推荐指数
1
解决办法
4425
查看次数

什么是更快更方便:Hashtable或Dictionary <int,double>()?

序言:我正在研究生产大型数据阵列的重载应用程序.

我写了下面的课

    using System;
    using System.Collections;
    using System.Collections.Generic;

    namespace CSharpSampleApplication.Data.CoreObjects
    {
        [Serializable]
        public class CalcItem
        {
            public CalcItem()
            {
                _additional = new Hashtable();
            }

            private readonly Hashtable _additional;

            public bool ContainsKey(int id)
            {
                return _additional.ContainsKey(id);
            }

            public void Add(int id, double value)
            {
                _additional.Add(id, value);
            }

            public DateTime Date { get; set; }

            public object this[int id]
            {
                get
                {
                    return _additional[id];
                }
            }
        }


    }
Run Code Online (Sandbox Code Playgroud)

然后,在另一个班级,我做了一个包含以下内容的经理:

    public List<CalcItem> CalcItems{ get; private set;}
    private readonly Dictionary<string, int> _keys;
    private int …
Run Code Online (Sandbox Code Playgroud)

.net c# memory-management data-structures

1
推荐指数
1
解决办法
1296
查看次数

使用Json.Net序列化哈希表

我有一个哈希表,其键的类型为整数,但是当使用json.net进行反序列化时,键会以字符串形式返回,有没有办法使用json.net序列化/反序列化将键类型保留在哈希表上?此哈希表是"MyType"类型的属性

var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
string json = JsonConvert.SerializeObject(o, Formatting.Indented, settings);

 mo = JsonConvert.DeserializeObject<MyType>(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects });

public Hashtable jsonViews
{
    get { return mViews; }
    set { mViews = value; }
}
Run Code Online (Sandbox Code Playgroud)

c# json hashtable json.net

1
推荐指数
1
解决办法
8670
查看次数