加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – treemap vs arraylist – 迭代/添加/编辑值时的性能和资

发布时间:2020-12-15 05:00:44 所属栏目:Java 来源:网络整理
导读:谈论性能和资源. 在添加和编辑值,ArrayList或TreeMap时,哪一个更快,所需资源更少? 或者是否有任何类型的数据可以击败这两个? (它必须能够以某种方式使数据排序) 解决方法 取决于你需要什么. 如果我们讨论的是排序数据,因为ArrayList是一个列表/数组,如果它
谈论性能和资源.

在添加和编辑值,ArrayList或TreeMap时,哪一个更快,所需资源更少?

或者是否有任何类型的数据可以击败这两个? (它必须能够以某种方式使数据排序)

解决方法

取决于你需要什么.

如果我们讨论的是排序数据,因为ArrayList是一个列表/数组,如果它已经排序,你可以得到O(log n)速度的值.但是要插入,它是O(n),因为在插入新元素时可能需要移动整个数组.

TreeMap数据结构实现为红黑树,插入时间和搜索时间均为O(log n).

所以,简而言之:

Data Structure         Insertion Speed    Search Speed
ArrayList (sorted)     O(n)               O(log n)
TreeMap                O(log n)           O(log n)

我肯定会选择TreeMap.它还有额外的好处,就是让它现在就准备好了(你必须自己实现一些代码才能使ArrayList工作).

注意:
如果没有得到O(n)(称为big-Oh)表示法,可以将其视为结构具有n个元素时所需的秒数的公式.因此,如果你有一个包含1000个元素(n = 1000)的ArrayList,则需要3秒(log 1000 = 3)才能在那里找到一个项目.虽然插入新元素需要1000秒.

另一方面,TreeMap需要3秒才能搜索和插入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读