当前位置:网站首页>【HBZ分享】ArrayList的增删慢查询快的原因
【HBZ分享】ArrayList的增删慢查询快的原因
2022-07-06 04:16:00 【hbz-】
ArrayList什么情况下的查询才很快?
- 只有通过下标index查询时,性能才很快,因为可以直接找到对应下表数据,时间复杂度O(1)
- 当非下标查询,而是通过for循环来遍历时,性能并不快,时间复杂度时O(n)
- 误区:很多人误以为ArrayList任何情况查询都很快,其实是错的,只有通过index的查询才很快
ArrayList的增加为什么性能慢
- 在像ArrayList中加入元素add的时候,有可能会导致List的扩容, 因为ArrayList底层是数组结构,但数据不支持动态扩容,所以ArrayList的扩容机制就是再创建一个新数组,把就数组数据迁移到新数组,然后再加入新元素
- 扩容机制是,如果原数组不存在,则直接扩容10个。如果原数组存在,则扩大1.5被,即oldSize + oldSize >> 1
ArrayList的删除为什么性能慢
- 删除指定元素,ArrayList底层实际是从删除的index位置为起点起点,到最后一个的所有元素,向前移动一位,然后把最后一位设置成null
- 移动所有元素,实际就是通过底层System.arraycopy(),将数组的index+1位置开始,复制到index位置,然后最后一位=null
- 所以这个过程会很慢
ArrayList的修改
- 修改和查询一样,当指定index时,直接修改,性能很高O(1)
- 当循环for去修改,那就性能低O(n)
边栏推荐
- 51nod 1130 n factorial length V2 (Stirling approximation)
- Tips for using dm8huge table
- 《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
- 10个 Istio 流量管理 最常用的例子,你知道几个?
- 20、 EEPROM memory (AT24C02) (similar to AD)
- Recommendation system (IX) PNN model (product based neural networks)
- Database, relational database and NoSQL non relational database
- [tomato assistant installation]
- 【按鍵消抖】基於FPGA的按鍵消抖模塊開發
- Explain in simple terms node template parsing error escape is not a function
猜你喜欢
Mysql数据库慢sql抓取与分析
TCP/IP协议里面的网关地址和ip地址有什么区别?
自动化测试的好处
R note prophet
What is the difference between gateway address and IP address in tcp/ip protocol?
[FPGA tutorial case 11] design and implementation of divider based on vivado core
DM8 archive log file manual switching
Tips for using dm8huge table
MySQL learning record 13 database connection pool, pooling technology, DBCP, c3p0
Viewing and verifying backup sets using dmrman
随机推荐
Stable Huawei micro certification, stable Huawei cloud database service practice
Basic knowledge of binary tree, BFC, DFS
/usr/bin/gzip: 1: ELF: not found/usr/bin/gzip: 3: : not found/usr/bin/gzip: 4: Syntax error:
Global and Chinese market of aircraft anti icing and rain protection systems 2022-2028: Research Report on technology, participants, trends, market size and share
Class A, B, C networks and subnet masks in IPv4
DM8 backup set deletion
Esp32 (based on Arduino) connects the mqtt server of emqx to upload information and command control
Record the pit of NETCORE's memory surge
MySql數據庫root賬戶無法遠程登陸解决辦法
Overturn your cognition? The nature of get and post requests
[adjustable delay network] development of FPGA based adjustable delay network system Verilog
[disassembly] a visual air fryer. By the way, analyze the internal circuit
asp. Core is compatible with both JWT authentication and cookies authentication
Stack and queue
2/10 parallel search set +bfs+dfs+ shortest path +spfa queue optimization
math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
综合能力测评系统
Solve the compilation problem of "c2001: line breaks in constants"
51nod 1130 n factorial length V2 (Stirling approximation)
Codeforces Round #770 (Div. 2) B. Fortune Telling