集合框架List

集合框架的由来

数据多了用对象进行存储,对象多了用集合来进行存储。而存储数据的方式(数据结构)各有不同,所以存储的容器也就有多种,从而形成了集合框架这一体系。

List集合相对于collection集合所特有的方法

凡是参数里含有下标的方法都是该体系所特有的方法
在这里插入图片描述
这里只是一小部分,想要看更多请点击链接List在线文档

迭代器

List的迭代器有两个,一个是Iterator,一个是ListIteratorListIteratorIterator的子接口,比iterator多上一些方法,同时也是List所特有的迭代器。Iterator只提供了判断、取出、删除的操作,如果想要有其他的操作,如添加、修改等,就需要使用其子接口ListIterator,该接口只能List集合的listIterator方法来获取
在这里插入图片描述
更加详细的解说ListIterator请点击链接在线文档

具体对象特点

List有几个常用的实现类,分别是ArrayListVectorLinkedListArraylist的特点是:数组结构,增删慢,查询快,有连续下标,线程不同步,增长因子为1.5。vector的特点是:数组结构,增删改查都慢,有连续下标,线程同步,增长因子2。Linkedlist的特点是:链表结构,增删快,查询慢,没有连续下标。

增长因子论证

在这里插入图片描述
输出的结果是
在这里插入图片描述
增长因子的初始值为10,当大于十时就会增大,也可以自己定义初始值,代码为:ArrayList li=new ArrayList<>(50); 50就是自己设置的初始值

Iterator.remove()与Collection.remove()的区别

在这里插入图片描述
如果我们用al.remove(obj)就会报java.util.ConcurrentModificationException的错误。原因是在这两个方法的源码中都有一个modCount的参数,用al每次进行修改操作都会使modCount+1,但是并没有重新给expectedModCount 赋值,所以就会报错。而使用it进行修改操作,在改变modCount的同时会给expectedModCount重新赋值,所以就可以。如果不是很了解的话请点击链接详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值