首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用哈希表在类中存储方法的优点是什么?

使用哈希表在类中存储方法的优点是什么?
EN

Stack Overflow用户
提问于 2015-01-20 01:11:53
回答 1查看 332关注 0票数 3

我正在开发一门语言和一台虚拟机。语言是基于类的,动态类型的,并且是静态作用域的。

示例类如下所示:

代码语言:javascript
复制
class Foo
{
    var bar
    {
       function get { return bar; }
       function set(value) { bar = value; }
    }

    function f1() {...}
    function f2() {...}
}

在类中声明的实例变量是受保护的,并且可以由setter/getter函数访问。在类中声明的函数是公有的。

在运行时,实例变量可以存储在数组中,因此在本例中,bar将存储在该数组的索引0处,编译器将负责在其getter函数中生成正确的LOAD 0指令。

其他的函数呢?使用数组存储函数肯定会比使用哈希表更快地进行运行时访问,但我想知道这样做的缺点是什么。我的意思是,如果我想要支持在运行时向类添加函数的功能,该怎么办?那么重写呢?

使用哈希表而不是常规数组来存储方法有什么优点?

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 01:13:07

如果语言是动态类型的,那么您将需要能够按名称查找方法/成员函数。

可以使用包含过程名称和链接的数组,可以使用树,可以使用链表,可以使用散列,也可以使用其他数据结构,但必须同时存储过程的名称和过程的链接,以便按名称查找。

哈希表对于较大的条目往往更有效,但是对于较少的条目,您有时会在每次查找时花费更多的时间来散列名称,而不是仅仅扫描一个数组。

所以,回答你的问题,哈希表的优点是,当人们将大量的方法(100,1000)放入一个类中时,方法查找时间不会倾向于增加。

哈希表的缺点是,对于方法数量较少的类(估计少于几十个),它们可能会使方法查找时间更长。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28030065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档