ArrayList与LinkedList的区别

ArrayList与LinkedList的区别大致如下:

    1.ArrayList基于可变长数组实现的,LinkedList基于双向链表实现的。

    2.对于get和set操作,基于数组的ArrayList速度更快。

    3.对于insert和remove,基于链表的LinkedList更快。

----------------------------------------------------------------------------------------------------------------------------------

一. ArrayList:

1.ArrayList的构造方法:

    1.默认的无参构造方法,会创建一个大小为10的列表。

    2.带int的有参构造方法,创建一个用户指定大小的列表。(传入参数不正确会抛出异常)

    注意:ArrayList会在列表存满时(注意是存满)而且此时有新的元素加入,此时会自动扩充当前大小的50%+1

后面的+1是为第11个元素存的,也就是说每次开辟新空间时要多加一位给当前要存的元素。 有兴趣可以查看源代码

2.ArrayList的add()方法:

    1.带一个参数的add(E e); 将元素加至末尾。返回值是一个boolean变量。

    2.带两个参数的add(int index,E e);将index位置以及以后的元素向后移,然后将元素e添加至index位置。该方法无返回值。

    注意:下标从零开始

3.get(int index)和set(int index,E e)方法:

4.contains(Object o)方法:  

    如果列表中有该元素,则返回true。

public boolean contains(Object o){
     return indexof(o)>=0;
}

5.remove()方法:

    1.remave(int index);根据索引删除。

    2.remove(Object o)根据对象删除。

----------------------------------------------------------------------------------------------------------------------------------

二. LinkedList:

1. LinkedList的构造方法:

    1.默认的无参构造方法,构造一个空的链表。

    2.一个参数(collection集合)的构造方法,用已有集合创建链表。

2.增加操作:

    1.add(E e);  添加元素至链表末尾。

    2.add(int index,E e); 添加元素到指定位置。

    3.addAll(Collection<? extends E> c);将集合c的元素添加至列表尾部。

    4.addAll(int index,Collection<? extends E> c);index指定了插入的位置。

3.查操作:

    1.get(int index);获取任意位置的元素。

    2.getLast()与peekLast()的区别:后者异常返回null,前者异常则会抛出。

    3.indexOf(Object o): 返回第一个匹配的索引

    4.lastIndexOf(Object o): 返回最后一个匹配的索引

4.删除操作:

    1.remove(int index): 删除任意位置的对象

    2.remove(Object o): 删除指定对象(该方法从前向后删除第一个匹配的对象)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值