说说对ArrayList的理解
最常用的list实现类;
内部是数组实现的;
允许对元素进行快速随机访问;
缺点就是元素之间不能存在间隔;
数组大小不满足时需要增加存储能力,需要复制数据到新的存储空间;
当在中间增加元素时,需要批量的复制和移动,因此适合随机查找和遍历,不适合插入和删除。
说说对Vector的理解:
内部数组实现;
支持线程同步,避免多线程同时写造成的数据不一致,但实现线程同步,消耗不小,所以访问比ArrayList慢。
说说对LinkList的理解
内部链表实现;
很适合动态插入和删除,但随即访问和遍历效果不好;
定义了list接口中没定义的方法,比如操作表头和表尾元素,可用作堆栈、队列、双向队列使用。
说说对数组的各种操作复杂度的理解
线性查找:O(N)
二分查找:O(log2N)
无序数组插入:O(1)
无序数组删除:O(N)
有序数组插入:O(N)
有序数组删除:O(N)
注意:无序数组插入快;有序数组可以二分查找。
笔记整理1
最新推荐文章于 2023-06-24 23:22:18 发布