草庐IT

dictionaries

全部标签

c# - .NET HashTable 与 Dictionary - Dictionary 能一样快吗?

我正在尝试找出何时以及为何使用字典或哈希表。我在这里做了一些搜索,发现人们在谈论我完全同意的字典的通用优势,这导致了装箱和拆箱的优势,从而获得了轻微的性能提升。但是我也读过字典不会总是按照插入的顺序返回对象,它是排序的。哈希表将在哪里。据我了解,这会导致HashTable在某些情况下更快。我的问题是,这些情况可能是什么?我上面的假设是不是错了?您可能会在什么情况下选择一个优先于另一个,(是的,最后一个有点模棱两可)。 最佳答案 System.Collections.Generic.Dictionary和System.Collecti

c# - .NET HashTable 与 Dictionary - Dictionary 能一样快吗?

我正在尝试找出何时以及为何使用字典或哈希表。我在这里做了一些搜索,发现人们在谈论我完全同意的字典的通用优势,这导致了装箱和拆箱的优势,从而获得了轻微的性能提升。但是我也读过字典不会总是按照插入的顺序返回对象,它是排序的。哈希表将在哪里。据我了解,这会导致HashTable在某些情况下更快。我的问题是,这些情况可能是什么?我上面的假设是不是错了?您可能会在什么情况下选择一个优先于另一个,(是的,最后一个有点模棱两可)。 最佳答案 System.Collections.Generic.Dictionary和System.Collecti

c# - 为什么在 C# 中 Dictionary 优于 Hashtable?

在大多数编程语言中,字典比哈希表更受青睐。这背后的原因是什么? 最佳答案 就其值(value)而言,字典是(概念上)哈希表。如果您的意思是“为什么我们使用Dictionary类而不是Hashtable类?”,那么答案很简单:Dictionary是泛型,Hashtable不是。这意味着您可以使用Dictionary获得类型安全,因为你不能向其中插入任何随机对象,而且你不必强制转换你取出的值。有趣的是,Dictionary.NETFramework中的实现基于Hashtable,正如您可以从其源代码中的注释中看出的那样:Thegener

c# - 为什么在 C# 中 Dictionary 优于 Hashtable?

在大多数编程语言中,字典比哈希表更受青睐。这背后的原因是什么? 最佳答案 就其值(value)而言,字典是(概念上)哈希表。如果您的意思是“为什么我们使用Dictionary类而不是Hashtable类?”,那么答案很简单:Dictionary是泛型,Hashtable不是。这意味着您可以使用Dictionary获得类型安全,因为你不能向其中插入任何随机对象,而且你不必强制转换你取出的值。有趣的是,Dictionary.NETFramework中的实现基于Hashtable,正如您可以从其源代码中的注释中看出的那样:Thegener

dictionary - 我如何在 Go 中获取 map 的任何给定元素?

假设我有一个map[string]int,我想要长度最短(以字节为单位)的key。如果我不知道map包含的任何特定元素,我如何获取它的样本以便我可以做varshorteststringforkey,_:=rangemyMap{iflen(key) 最佳答案 您可以使用for循环并立即跳出它以仅对一个元素进行采样。varshorteststringforkey,_:=rangemyMap{shortest=keybreak}forkey,_:=rangemyMap{iflen(key)丑陋,但它有效。

dictionary - 我如何在 Go 中获取 map 的任何给定元素?

假设我有一个map[string]int,我想要长度最短(以字节为单位)的key。如果我不知道map包含的任何特定元素,我如何获取它的样本以便我可以做varshorteststringforkey,_:=rangemyMap{iflen(key) 最佳答案 您可以使用for循环并立即跳出它以仅对一个元素进行采样。varshorteststringforkey,_:=rangemyMap{shortest=keybreak}forkey,_:=rangemyMap{iflen(key)丑陋,但它有效。

dictionary - 如何正确初始化一片 map

所以我希望能够创建一个映射slice,这样当我访问该slice的任何元素时,我都会得到一个非零映射。到目前为止,这是我的代码。但是我得到了panic:assignmenttoentryinnilmap的错误packagemainimport("fmt")funcmain(){all:=make([]map[string]string,3)first:=all[0]first["hello"]="world"fmt.Println(all)} 最佳答案 我想作者想像这样用默认实例预初始化slicefuncmain(){all:=mak

dictionary - 如何正确初始化一片 map

所以我希望能够创建一个映射slice,这样当我访问该slice的任何元素时,我都会得到一个非零映射。到目前为止,这是我的代码。但是我得到了panic:assignmenttoentryinnilmap的错误packagemainimport("fmt")funcmain(){all:=make([]map[string]string,3)first:=all[0]first["hello"]="world"fmt.Println(all)} 最佳答案 我想作者想像这样用默认实例预初始化slicefuncmain(){all:=mak

dictionary - 分配给 nil 映射中的条目

我正在尝试将值分配给在init函数中初始化的映射。但是panic发生了:分配给nil映射中的条目packagemaintypeObjectinterface{}typeObjectImplstruct{}typeTeststruct{collectionmap[uint64]Object}func(testTest)init(){test.collection=make(map[uint64]Object)}funcmain(){test:=&Test{}test.init()test.collection[1]=&ObjectImpl{}}https://play.golang.or

dictionary - 分配给 nil 映射中的条目

我正在尝试将值分配给在init函数中初始化的映射。但是panic发生了:分配给nil映射中的条目packagemaintypeObjectinterface{}typeObjectImplstruct{}typeTeststruct{collectionmap[uint64]Object}func(testTest)init(){test.collection=make(map[uint64]Object)}funcmain(){test:=&Test{}test.init()test.collection[1]=&ObjectImpl{}}https://play.golang.or