SortedList<>、SortedDictionary<> 和 Dictionary<>

2023-12-14

我发现SortedList<TKey, TValue> SortedDictionary<TKey, TValue> and Dictionary<TKey, TValue>实现相同的接口。

  1. 我们什么时候应该选择SortedList and SortedDictionary over Dictionary?
  2. 有什么区别SortedList and SortedDictionary在应用方面?

  1. 当迭代两者中的任何一个中的元素时,元素将被排序。情况并非如此Dictionary<T,V>.

  2. MSDN解决了之间的差异SortedList<T,V> and SortedDictionary<T,V>:

SortedDictionary(TKey, TValue) 泛型类是二分查找 树O(log n) 检索,其中 n 是元素的数量 词典。在这方面,它类似于 SortedList(TKey, TValue) 泛型类。这两个类具有相似的对象模型,并且 两者都有 O(log n) 检索。这两个类的不同之处在于 内存使用和插入和删除速度:

SortedList(TKey, TValue) 使用的内存少于 SortedDictionary(TKey, T 值)。

SortedDictionary(TKey, TValue) 具有更快的插入和删除速度 未排序数据的操作:O(log n) 而不是 O(n) 排序列表(TKey,TValue)。

如果列表是从排序数据一次性填充的, SortedList(TKey, TValue) 比 SortedDictionary(TKey, T 值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SortedList<>、SortedDictionary<> 和 Dictionary<> 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • 将 jQuery流沙与 fancybox 结合使用时出现问题

    我正在使用流沙 jQuery 的这个例子 制作精美的 HTML5 作品集 现在 我想在单击图像时打开灯箱 为此 我使用 fancybox jQuery 但问题在于这个 Making a Beautiful HTML5 Portfolio q
  • 由外键控制的值

    我在 SQL Server 中有一个非常简单的数据库 包含以下三个表 Theater ID is3D 其他值 Show ID Theater ID Movie ID date time 其他值 Movie ID is3D 其他值 我想确保3
  • Java-分割字母数字字符串

    输入示例 RC23 CC23QQ21HD32 BPOASDf91A5HH123 输出示例 RC 23 CC 23 QQ 21 HD 32 BPOASDf 91 A 5 HH 123 字母部分和数字部分的长度不固定 我知道如何将 split
  • 带有局部变量的 Mockito

    我有一个简单的方法 返回一个String 它还创建了一个本地List 我想测试一下给本地带来的附加值List 这是一个例子 package com impl import java util ArrayList import java ut
  • Android:setSelection 对 Spinner 没有影响

    我在 Spinner 上使用 setSelection 时遇到一些问题 我将值设置为在代码中显示微调器时预先选择 但它没有任何效果 并且始终选择列表中的第一个替代项 代码如下所示 LayoutInflater li LayoutInflat
  • 在 Flash 中,当 e4x 语句存储在字符串中时,我将如何运行该语句?

    所以我有这样的事情 var xmlStatement String xmlObject node 3 thisValue 我必须使用什么神秘函数才能执行 xmlStatement 并从该 xmlObject 获取 thisValue 喜欢
  • 统计 Android 中的应用程序使用情况

    谁能帮我确定如何计算应用程序在 Android 中的使用次数 写入 SharedPreference onCreate 这不会是一个非常准确的计数 因为 onCreate 有时会被调用 而不仅仅是应用程序启动 但它会是一个相当不错的数字 如
  • 需要将具有相同ID的多行数据转换为1行多列数据

    我回顾了已经解决的问题的版本 但是我发现的一些好的技巧 例如 在 分区 上使用rank 似乎不适用于我所在的Sybase版本 我希望运行一个程序来提取按如下方式组织的数据 电子邮件 偏爱电子邮件1 偏好XYZ电子邮件1 偏好ABC 并将其呈
  • 从 Windows 批处理文件替换文本文件中的字符

    我正在尝试编写一个批处理文件 它将查看一个小文本文件 实际上是一个 CUE 表 中的每个字符 并执行三件事 删除所有问号 用连字符替换任何斜杠 并用两个冒号替换冒号连字符 如下例中的第二行 TRACK 01 AUDIO TITLE Colo
  • NextAuth /api/auth/* 在 Vercel 部署上始终返回 404,但在本地工作

    每当我尝试导航到登录页面时 它都会重定向到 api auth error关于 vercel 部署 在本地 它按预期导航和工作 通过检查网络选项卡 第一个失败的网络请求是 api auth providers 不太确定哪里出了问题 pages
  • 上下文不保存更改并出现错误 1550

    我正在尝试更新实体并保存更改 我总是收到以下错误 The operation couldn t be completed Cocoa error 1550 Method BOOL updateEvent EventDTO eventDTO
  • SCNNode 没有出现在正确的位置

    我下载了wall2 obj来自 Google Blocks 的文件 然后我使用 Blender 将扩展名更改为 dae墙节点没有出现在它应该出现的地方 墙节点放置的位置与应放置的位置 枢轴点位置问题 在搅拌机中改变pivot point的位
  • 如何从 Spring data MongoDB 中的 AggregationOperation 列表创建聚合?

    我想创建一个可以在 MongoOperations 的aggregate 函数中使用的聚合 因此 为了创建聚合 我使用了 AggregationOperation 列表 如下所示 ApplicationContext ctx new Ann
  • 从 JavaScriptExecutor 的 ExecuteScript 获取值

    我有一个需要价值的问题 string someValue IJavaScriptExecutor Global Driver ExecuteScript publication title val Console WriteLine som
  • Symfony2 +Vagrant 性能 - 运行缓慢 - 加速?

    我已经开始使用 vagrant 和 Symfony2 来开发 Web 项目 我使用的是Windows 性能非常慢 因为不支持nfs挂载 我已将缓存放入内存中 这提供了异国情调的提升 禁用了 xdebug 如发布的here 然而 在 Wind
  • 角度形式数组单选按钮

    我正在尝试将单选按钮组添加到 FormArray 问题是 当我选择一个值时 它会更改 FormArray 每个成员的值 我知道这与 formControlName 有关 但是我不知道如何使 formControlName 动态化 我看过这个
  • 如何检查 BigQuery 表中的 JSON 对象列中是否存在空值

    我参考了 GCP Big 查询文档 如下链接所示 但没有成功实现使用这些函数从 Big 查询表中检索非空值 JSON 数据类型列值的目标 参考帮助 https cloud google com bigquery docs reference
  • ReactJS:通过 props 从父级改变子级状态

    免责声明 我已经看过Reactjs 如何修改父级的子状态或道具 并且不相信答案符合我的问题 所以我有一个可重用的 有状态的对话组件 它根据其状态呈现不同的 DOM 我还必须能够控制从父级渲染哪个 DOM TL DR 我应该如何改变父组件的子
  • 多个服务层和数据库事务

    我只是想知道如何最好地处理跨多个服务层的事务 服务层使用 ORM 来存储和检索数据库 交易是否应该在各个服务层内被了解和处理 或者它们应该由另一层处理 例如 我有两个针对用户和客户端的服务层 我想 1 创建并保存新客户端2 创建并保存新用户
  • SortedList<>、SortedDictionary<> 和 Dictionary<>

    我发现SortedList