HashMap 实现 - RPGLE

HashMap implementation - RPGLE

在RPGLE中实现一种哈希映射是否可行? 你会如何开始思考它?
我应该看看 Java 源代码和 "copy" 那种风格吗?

HashMap 最终应该与所有数据类型兼容。

我将从这里开始:Implementing a HashMap

应该能够使用 C 代码作为 RPGLE 版本的基础。

或者您可以只用 C 构建过程并从 RPGLE 调用它。

根据您的需要(如果您不需要元素的特定顺序),您还可以使用已经存在的基于树的地图,http://rpgnextgen.com/index.php?content=libtree。它使用 github 上 libtree 项目的红黑树实现(这是非常兼容的 C 代码。恭喜开发人员)。

RPG Next Gen 项目为字符键和整数键提供包装器。当你传递一个指针和一个长度时,你可以在其中存储任何值。

是的,需要像列表、地图和树这样的数据结构。我经常使用它们在我不知道可能返回多少元素的过程之间传递数据。在大多数编程语言中,列表、映射和树是语言的一部分,或者至少是运行时库的一部分。遗憾的是在角色扮演游戏中并非如此。

最后我自己实现了
你可以在这里找到它: GitHub - HASHMAP.RPGLE

它基于 JDK 实现,但哈希码是从 SHA1 哈希计算的,并且使用模块操作而不是移位。