Java 性能 : Map vs List

标签 java performance

我在 JSF1.2 和 Richfaces 3.3.2 中构建了树分页,因为我有很多树节点(大约 80k),而且速度很慢..

因此,作为第一次尝试,我创建了一个包含页面和页面节点列表的 HashMap。

但是,性能还不够好......

所以我想知道是否有比 HashMap 更快的东西,也许是列表列表之类的东西。

有人有这方面的经验吗?我能做什么?

提前致谢。


编辑。

最大的问题是我必须验证树的子节点中用户的权限。我知道这是个大问题:这个验证很慢,因为我必须进入节点内部,我没有一个很好的方法来知道用户是否在第 10 级节点中具有权限而不迭代所有这些节点。除此之外,同样的三个已经用在了更多的地方…… 我做这个分页的基本原因是客户端会很慢,因为 richfaces 生成的结构,大量的 tr 和 td,浏览器会为此疯狂。 所以,不幸的是,我必须加载所有节点,并且只对客户端进行分页,我需要知道其中哪些节点迭代速度更快......

抱歉我的英语不好。

最佳答案

如果要获取页面的所有节点, HashMap 是最快的数据结构。节点列表可以在固定时间 (O(1)) 中获取,而列表的时间是 O(n)(n=页数,在排序列表上更快,但永远不会接近 O(1))

什么对您的数据结构的操作太慢。这就是您在开始优化之前必须分析的内容。

关于Java 性能 : Map vs List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702087/

相关文章:

mysql - 扩展面向列的 Mysql - Wordpress

java - Safari 无法下载此文件 (Passbook Pass)

java - JAXB maven 插件只能在发生变化时生成源代码吗?

java - 在java中改变音频速度

iphone - iPhone 上的快速平方根反比

mysql - 按 DATE(TIMESTAMP) 分组的 SQL 性能与 DATE 和 TIME 的单独列

java - 如何存储从mysql检索到的数据并在java中显示为用户搜索的结果

java - LOGBACK:将日志写入类路径中的文件

java - 为旧的 Java 编译器提供 Dummy-Annotation

mysql - 优化 SELECT COUNT(DISTINCT(col)) var, col2 var2 FROM table WHERE col< >'X' and col2 between 'Y' and 'Z' GROUP BY var2 ORDER BY var DESC;为了速度?