HashMaps足够快?

时间:2014-03-13 19:05:49

标签: java performance opengl hashmap lwjgl

我正在建立自己的基于Lwjgl的小型Opengl库。目前我正在使用HashMaps来存储渲染对象,场景或着色器程序之类的东西,因为我希望在用户可以看到的类上,并且创建方法来修改,创建,我不知道...其他对象或类受到保护。 所以,解释一下:

有一个名为" ShaderProgram"的课程。而是允许用户创建一个,使用ShaderProgram s = new ShaderProgram(...); ,我在我的主要类"中创建了一个方法,名为" createShaderProgram",给它指定参数,创建一个着色器程序并将其放到名为shaderPrograms的hashMap中,用户名为决定。例如,使用MyClass.createShaderProgram(" particle_shader",...)我可以为我的粒子创建着色器,然后使用MyClass.binShaderProgram(" particle_shader")或类似的东西,我可以用它。

但是:这够快吗?或者是否有其他原因将其更改为int指标,或者,完全允许用户使用所有类?因为例如我也像这样创建渲染对象,并且在每个帧中都要做MyClass.getRenderObject(" ACube")。move(...)...我可以这样做吗?你怎么看待这件事?

1 个答案:

答案 0 :(得分:2)

在最坏的情况下,哈希表的访问复杂度时间为O(n): Time Complexity of HashMap methods

是的,我想说如果访问你的对象集合的性能如此重要,你应该使用像数组一样的1:1索引集合。