arraylist遍历删除

后端 (49) 2023-11-12 17:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说arraylist遍历删除,希望能够帮助你!!!。

我们参加Java培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。

arraylist遍历删除_https://bianchenghao6.com/blog_后端_第1张

本文列举的技术问题有:

  • ArrayList如何删除数据?
  • ArrayList适合做队列吗?
  • 数组适合做队列吗?
  • ArrayList和LinkedList两者的遍历性能孰优孰劣?

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

问题一:ArrayList如何删除数据?

A:

arraylist遍历删除_https://bianchenghao6.com/blog_后端_第2张

ArrayList删除数据时同样使用拷贝数组的方式,将要删除的位置之后的所有元素拷到当前位置,最后再对最后一个位置的数据设置为null,交给gc来回收。这种删除,其实就是覆盖,如果数据量大,那么效率很低。

问题二:ArrayList适合做队列吗?

A:

队列需要遵循先进先出的原则,如果从ArrayList的数组头部入队列,数组尾部出队列,那么对于入队列时的操作,会涉及大数据量的数组拷贝,十分耗性能。队头队尾反一反也是一样,因此ArrayList不适合做队列。

问题三:数组适合做队列吗?

A:

ArrayBlockingQueue环形队列就是用数组来实现的。ArrayBlockingQueue的存和取操作的索引是在当索引值等于容量值时,将索引值设置为0实现环形队列的效果,因此在这种情况下,数组适合做队列。

arraylist遍历删除_https://bianchenghao6.com/blog_后端_第3张

问题四:ArrayList和LinkedList两者的遍历性能孰优孰劣?

A:

ArrayList的遍历性能明显要比LinkedList好,因为ArrayList存储的数据在内存中时连续的,CPU内部缓存结构会缓存连续的内存片段,可以大幅降低读取内存的性能开销。

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。