You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

初学数据结构疑问:为什么对象不被视为一种数据结构?

先纠正一个你可能存在的认知偏差:对象本质上属于数据结构的范畴,你会有这个疑问大概率是把「编程语言层面的实现命名」和「通用数据结构的标准分类」搞混了。

  • 首先,你说的用来存数据的对象,通用的标准数据结构名称是哈希表(也叫散列表),和数组、链表、栈、队列都属于经典的基础数据结构。不同编程语言会给它套上不同的名字:JavaScript 里叫对象、Python 里叫字典、Go/Java 里叫 Map,本质底层都是哈希表的工程实现,完全符合数据结构「规定数据的存储组织形式、附带对应增删改查操作逻辑」的定义。
  • 你会产生「对象不算数据结构」的误解,通常有两个常见原因:一是很多入门教材讲基础数据结构的时候,会先讲数组这种直接映射内存、逻辑最简单的线性结构,哈希表往往会放在稍靠后的章节讲解,如果你刚学到前半部分就很容易产生认知偏差;二是要注意区分「存储用的键值对对象」和「面向对象编程里的类实例对象」,后者是面向对象编程范式下的概念,除了存储数据还封装了方法、甚至包含继承多态等特性,这种场景下讨论的对象确实不属于通用数据结构的分类,很多人会把这两个概念搞混。
  • 补充一下数组和哈希表(也就是你说的存储用对象)的核心差异:数组是顺序存储的线性结构,下标是连续整数,内存空间一般连续分配,通过下标直接计算内存地址就能拿到数据,访问时间复杂度稳定O(1);哈希表则是通过哈希函数把任意类型的键(字符串、数字等)映射到存储位置,平均访问时间复杂度也是O(1),只是存储逻辑上不是顺序连续的。

内容的提问来源于stack exchange,提问作者Mustapha Ahmed Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:09:01