我在 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/