- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
据我了解,
TreeMap :
1. Insert O( logN )
2. Delete O( logN )
3. Retrieve O( logN )
HashMap :
1. Insert O( 1 ) -> O( N )
2. Delete O( 1 ) -> O( N )
3. Retrieve O( 1 ) -> O( N )
我知道 TreeMap 使用红黑树作为内部数据结构。但是,我不太确定 HashMap 的内部数据结构。
我正在使用 Java 开发一个小项目来演示 HashMap 和 TreeMap 之间所有操作(插入、删除、检索)的运行时复杂性,但我真的不知道如何将理论公式与实际结果联系起来运行一个程序。例如,通过运行快速测试:1.插入10000个元素2.删除100个元素3.检索100个元素
我得到了这个信息:
HashMap
Create time : 6348015 nano seconds.
Remove time : 98458 nano seconds.
Retrieve Found time : 59762 nano seconds.
Retrieve Not Found time : 39097 nano seconds.
--- end ---
TreeMap
Create time : 20518163 nano seconds.
Remove time : 274221 nano seconds.
Retrieve Found time : 112072 nano seconds.
Retrieve Not Found time : 168442 nano seconds.
--- end ---
我想知道如何找到这些时间与理论时间复杂度如 O( N ) 或 O( logN ) 的联系?这个结果让我很吃惊,因为我一直认为 TreeMap 会打败 HashMap。谁能给我一些关于这些事情的简要解释?提前致谢。
最佳答案
如果你想展示一些操作的复杂性,你不能只使用一个数据点,你必须展示当 N
变化时时间如何变化。
此外,对于较小的数据集,理论复杂性较高的算法或数据结构通常运行时间较差。
要考虑的另一件事是具有代表性的值(value)观。例如,如果您将值 1, 2, 3, ...
插入到 RB 树中,那是最坏的情况(我认为),因为它必须经常重新平衡。插入随机值可能会产生不同的结果。
关于algorithm - JFC 的 HashMap 和 TreeMap 之间的时间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648268/
我在使用 JscrollPane 时遇到问题。尝试连续添加几个按钮,然后继续添加一组行,它最初显示得很好,但是一旦我单击滚动条,所有按钮都会被包裹在框架中。我想使用 setBounds (没有任何布局
请引导我阅读一个不错的 jfcunit 教程, 请帮助我了解如何使用它,因为我找不到更多信息, 最佳答案 为什么不简单地为 Swing 应用程序使用另一个单元测试框架?JFC Unit 自 2004
据我了解, TreeMap : 1. Insert O( logN ) 2. Delete O( logN ) 3. Retrieve O( logN ) HashMap : 1. Insert O(
所以,我应该 use SparseArray instead of HashMap为了性能: 然而,SparseArray不是 JCF 的一部分并且不执行 Collection也不List也不Map
众所周知,Java和J#中禁止“多重继承”。但是,您可以使用 Java 和 J# 实现多个接口(interface),例如 Runnable。那么,您将如何编写自己的类来同时继承 JFC 和 WFC
使用 NetBeans(java),我使用 JFileChooser 创建了一个 JDialog,当我尝试使用 ComboBox 打开 lnk 文件夹(以其他方式工作正常)时,会引发异常并且未打开该文
我是一名优秀的程序员,十分优秀!