collection转换为list_【Java视频教程】day26-List集合

List集合

List接口

Collection接口是集合框架的最顶层接口,描述的是集合框架中最共性的操作;在它下面有很多子接口和实现类,其中有两个子接口非常重要,是我们学习的重点,他们分别是List接口和Set接口,我们先来看List接口;

c3a25af00eae702dc308acee93797e3c.png

List接口介绍

c0c5d78308e53463559f37d799d60e5b.png

总结:

  1. List集合都有下标;这个下标也是从0开始,和数组的下标一样;我们可以通过下标精确地操作某一个元素;
  2. List集合是有序的,迭代集合的顺序和添加元素的顺序一致;
  3. List集合允许保存重复的元素

List的特有方法

List接口是Collection接口的子接口,所以拥有Collection接口中规定的所有方法;

要单独定义一个接口来继承父接口,目的是对父接口的扩展;

List集合中保存的元素都具有顺序,List接口扩展的方法,主要是就是针对元素的位置设计的;

这些特有的方法主要可以分为以下几类:

添加方法

1、向指定位置插入一个元素

27be132130e37a7b5c0f2893fd72aa39.png
  1. 向指定位置插入多个元素

53fbdc9ca1d0ca145e9a6eb6887630fe.png

a086aa156b28a8721d1e8bdd2cbbf98b.png

删除方法

1、删除指定位置的一个元素

2994a2b80a2ec6eb7fbc2026ea5e6ac9.png

47c2c33c6d362edfe04a538608f1a510.png

修改方法

  1. 替换指定位置的元素

c8ec99874f9d93e95e2f6f8c067ad22f.png

142146b3f56489319a9e8b280f920dd6.png

获取方法

1、获取指定位置的一个元素

8b31763f71b3f480fbfa860150673785.png

fbc9553a4cee9a945c622cf949b79bb2.png

2、获取指定区间的多个元素

f64fb4c54a37352727fbc4b65650aac0.png

117a9141848865d1b45724cd0fffb74c.png
  1. 获取指定元素在集合中第一次出现的位置

0156dcc4d5b2ada15097214058bba210.png
  1. 获取指定元素在集合中最后一次出现的位置

79ddb39b49e74ecd2909e28ce9427618.png
0d600362fc9edaa708b5abbb3238b375.png
https://www.zhihu.com/video/1068288920290263040

List的特有迭代器

为了遍历集合中的元素,Collection提供了一个迭代器Iterator;

List集合继承了Collection接口,所以也可以使用迭代器进行迭代;

但是Iterator使用时,光标只能从前往后移动,而且在迭代期间,不能修改集合中的元素;

而在list集合中的数据都具有索引,为了使用方便,对Iterator接口进行了扩展,得到一个新的列表迭代器接口,叫做ListIterator:

d6196e0fc473bad6aac2087aa51464b5.png

2d7a42e5474a2294bbaf4584517531bd.png

481636f7da3c4613e9fa41a0463c93aa.png

迭代器的使用演示:

2f4476395e554ea4c7613f6b7b327d88.png

c35c2f839b7dad3ab8d82d0f42ff3044.png

f12ad58b1ab8f7892241aa4ea2242acf.png

b4e8656d61754947bf7b345bee40f183.png

通过索引遍历List集合

因为List集合中保存的数据都有索引,所以List集合的遍历可以使用普通for循环,通过索引获取元素;

784d12c6eaf5c8a4f76500b42f373337.png

注意:因为迭代器对象是具体的集合类创建的,所以具体的迭代器对象知道这个具体的集合类底层如何保存数据,如何遍历效率最高;所以开发中推荐使用迭代器迭代;

(如果使用的是ArrayList集合,直接使用for循环遍历效率就很高;)

e962a94feb41777e158b4e343f17197a.png
https://www.zhihu.com/video/1068289160418217984

List接口常用实现类介绍

list接口介绍完了,我们来说一说它的实现类;它的实现类也比较多,这里我们只介绍其中三个主要的实现类:

ArrayList;LinledList;Vector

ArrayList介绍

ed4d675005d9f9903eef8543fb44549d.png
  1. List 接口的大小可变数组的实现:说明,这个集合底层使用一个可变的数组(默认创建一个数组,随着数据的添加,原来数组容量不够,就会创建一个新的更大的数组来替换原来的数组)来保存数据;

练习:自己实现一个类,里面使用可变数组保存数据;提供添加数据的方法(add),和一个获取数据容量(size);初始数组大小为5;

2、ArrayList集合可以保存null元素;

3、ArrayList是线程不安全的;

f7672e65d85a57b771190f286ae09313.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值