学习Java10

1.Array和ArrayList的区别是什么?

Array是数组    ArrayList是类

Array是定长的(需要手动扩容),ArrayList长度可变(使用过程中自动扩容)ArrayList的底层是Array

2.ArrayList和LinkedList的区别是什么?


1.底层数据结构实现︰ArrayList底层数据结构是动态数组,而 LinkedList的底层数据结构是双向链表
2.随机访问(即读)效率∶ArrayList比LinkedList在随机访问的时候效率要高,因为ArrayList底层是数组,可以通过索引号快速访问,LinkedList是通过二分查找法逼历链表节点进行查找的
3.增加和删除效率∶在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为ArrayList
增删操作需要大量的前移或后移,这个过程中涉及到大量的赋值操作比较耗时间,LinkedList只需要修改节点对象的左右指针即可。4.内存空间占用:LinkedList 比 ArrayList更占内存,因为 LinkedList
的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
5.综合来说,在需要频繁读取集合中的元素时,更推荐使用ArrayList,而在插入和删除操作较多时,更推荐使用 LinkedList。
你知道几种逼历ArrayList的方式
整理ArrayList和LinkedList的常用方法
 

3.你知道几种遍历ArrayList的方式

  1. 普通for循环

 

   2.增强型for循环

 

   3. ForEach循环

   隐式循环 ,循环存在,在forEach函数中forEach函数会遍历list取出每一个元素他会回调你的箭头函数,并把值传递给箭头函数的参数

 

     4.迭代器

调用iterator()方法,返回一个迭代器对象

 

4.整理ArrayList和LinkedList的常用方法

ArrayList的常用方法

add(int)   在数组尾部的第一个不为空的位置添加

add(int,e) 在数组中的指定位置插入

set(int,e) 修改数组的指定位置

remove(int) 根据索引号移除

remove(Object) 根据指针移除,如果存在多个只会移除第一个

get(int)  根据指定的索引号找到某个元素并返回

LinkedList的常用方法

  1. addFirst(E) 在头部添加
  2. addLast(E) 在尾部添加
  3. add(E)
  4. add(int,E) 在指定位置插入

链表在中间插入的速度要优于数组,只需要找到插入位置的节点,创建新节点然后修改指针即可

数组在尾部插入更快,但是在首部或者中间插入,比较慢因为需要后移

  1. removeFirst()  删除头部
  2. removeLast()  删除尾部
  3. remove(int index)  根据指定位置删除
  4. remove(Object 0)  根据指定元素删除

  1. set(int E)检查下标是否越界,不能大于size

get(int)链表并没有索引的机制,底层通过遍历链表然后通过二分查找法找到指定位置的节点。并返回节点中的iten

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值