第十节——List集合
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十节——List集合相关的知识,希望对你有一定的参考价值。
List集合学习
一、List集合概述和特点
- 概述:有序集合,用户可以通过索引访问元素,可以存放重复的元素
- 使用方法:和Collection集合一样使用多态创建
- 例子:
//导入包,IDEA自动完成
import java.util.ArrayList;
import java.util.List;
//创建List
List<String> l = new ArrayList<>();
二、ListIterator列表迭代器
- 通过List集合的ListIterator()方法得到,是List集合特有的迭代器与Collection集合的迭代器不同
- 不同点:Collection迭代器只能从开头往后迭代且不能改变集合长度;而List迭代器可以正反迭代,且允许改变列表长度
- 常用方法:
-E next():返回迭代器中的下一个元素
-boolean hasNext():正向还有元素,则返回true
-E previous():返回列表中的上一个元素
-boolean hasPrevious():反向还有元素,则返回true
-void add(E e):添加元素到next位置后面
-void remove():移除使用next或previous访问到的元素
-void set(E e):用指定元素替换next访问到的元素 - 注意事项:对于一个列表[‘qwe’,‘asd’,‘zxc’],产生了迭代器后,next所在的位置为’qwe’之前,列表的顶上为空,此时add添加元素会添加到列表开头’qwe’之前,remove与set方法会报错,需要使用一次next方法,让光标往后移指向’qwe’时,add会添加到’qwe‘后面,remove与set会对’qwe’元素起作用。
- 例子
//不适用next方法,从列表顶部开始操作
List<String> l = new ArrayList<>();
l.add("qwe");
l.add("asd");
System.out.println(l);
ListIterator<String> lit = l.listIterator();
lit.add("123");
System.out.println(l);
//使用next方法,从第一个元素操作
List<String> l = new ArrayList<>();
l.add("qwe");
l.add("asd");
System.out.println(l);
ListIterator<String> lit = l.listIterator();
lit.next();
lit.set("123"); //将qwe修改为123
lit.add("456"); //在123后面插入456
System.out.println(l);
三、List集合的子类
- ArrayList:底层数据结构为数组,查询快,增删慢
- LinkedList:底层数据结构为链表,查询慢,增删快
以上是关于第十节——List集合的主要内容,如果未能解决你的问题,请参考以下文章