Hello,大家好,我是Yize,又见面啦!

上期我们学习了Collection的体系结构以及三大遍历方式,所以本期我们就接着那个体系继续——List集合!

目录

ArrayList集合

列表迭代器

LinkedList集合


ArrayList集合

首先在上期我们看到,List集合的特点是有序,可重复,有索引,所以他们相对于Collection的方法新增的都是一些关于索引的方法,下面我们看:

其中,我们看到remove方法可以删除索引处的元素,那我们就要想了,在Collection中我们学到的remove方法中可以删除指定元素,那如果说我集合里面有元素1,我此时又去删除1,它到底是删除1这个还是删除索引1呢,别急,我们接着看:

//List系列集合中的两个删除的方法
//1.直接删除元素
//2.通过索引进行删除

//创建集合并添加元素
List<Integer> list = new ArrayList<>();

list.add(1);
list.add(2);
list.add(3);

//删除元素
//请问:此时删除的是1这个元素,还是1索引上的元素?
//通常默认按索引删除,为什么?
//因为在调用方法的时候,如果方法出现了重载现象
//优先调用,实参跟形参类型一致的那个方法。
list.remove(1);
//手动装箱,手动把基本数据类型的1,变成Integer类型
Integer i = Integer.valueOf(1);
list.remove(i);
System.out.println(list);

好,下面我们继续学习!

在上期我们学习了三种遍历方式,其实不止,所以下面我们来学习另一种遍历方式——列表迭代器遍历

列表迭代器

//列表迭代器
//获取一个列表迭代器的对象,里面的指针默认也是指向@索引的
//额外添加了一个方法:在遍历的过程中,可以添加元素
ListIterator<String> it = list.listIterator();

while(it.hasNext ()){
    String str = it.next();
    if("bbb".equals(str)){
        //qqq
        it.add("qqq");
    }
}

非常简单对吧,因为我们发现,其实列表迭代器和迭代器在书写上没有什么区别,只是将Iterator改为了ListIterator

那我们来小结一下我们学到的这些遍历方式吧

LinkedList集合

底层数据结构是双链表,所以操作首尾的速度是极快的,因此有很多操作首尾的方法

好啦,这期的学习到此结束,我们发现还是非常轻松加愉快的,在下期我们就要进行Set集合的学习啦,大家不用担心,其实和这期差不多,难度都是非常小的,另外,最近我会讲一下数据结构的基本知识,为了让大家去了解这些集合的底层代码逻辑

我们下次见!!!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐