2020年java常见面试题及答案:第九部分
来源 :中华考试网 2020-09-30
中ArrayList和LinkedList区别
ArrayList和LinkedList都继承自List,是有序可重复集合,而List和Set又都继承自Collection。
ArrayList:底层采用数组形式存储数据,默认情况下初始化的数组长度为10,每次会扩容1.5*length+1。查询可以通过数组下标来快速找到,因此查询数据非常的快。但添加或删除可能会导致后面的元素位置都发生变化,会使操作步骤增加,因此添加或删除可能会速度较慢。
LinkedList:底层采用双向链表来存储数据。在LinkedList中定义了一个内部类Node,每一个数据都会被保存在Node中,在Node中同时记录了它的前一个节点preNode和后一个节点nextNode。由于链表的长度可以无限,不会发生扩容的操作。查询操作会先判断是在链表的前半部分还是后半部分,然后分别从头结点或尾节点遍历查询数据。如果不指定下标,则会从头结点开始遍历整个链表,因此查询操作很慢。但是添加或删除可以直接修改Node中的preNode或nextNode所指向的对象。
填写下面表单即可预约申请免费试听!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
预约申请免费听课
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机: