第十节——List集合

Posted 想学习安全的小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十节——List集合相关的知识,希望对你有一定的参考价值。

List集合学习

一、List集合概述和特点

  1. 概述:有序集合,用户可以通过索引访问元素,可以存放重复的元素
  2. 使用方法:和Collection集合一样使用多态创建
  3. 例子:
//导入包,IDEA自动完成
import java.util.ArrayList;
import java.util.List;
//创建List
List<String> l = new ArrayList<>();

二、ListIterator列表迭代器

  1. 通过List集合的ListIterator()方法得到,是List集合特有的迭代器与Collection集合的迭代器不同
  2. 不同点:Collection迭代器只能从开头往后迭代且不能改变集合长度;而List迭代器可以正反迭代,且允许改变列表长度
  3. 常用方法:
       -E next():返回迭代器中的下一个元素
       -boolean hasNext():正向还有元素,则返回true
       -E previous():返回列表中的上一个元素
       -boolean hasPrevious():反向还有元素,则返回true
       -void add(E e):添加元素到next位置后面
       -void remove():移除使用next或previous访问到的元素
       -void set(E e):用指定元素替换next访问到的元素
  4. 注意事项:对于一个列表[‘qwe’,‘asd’,‘zxc’],产生了迭代器后,next所在的位置为’qwe’之前,列表的顶上为空,此时add添加元素会添加到列表开头’qwe’之前,remove与set方法会报错,需要使用一次next方法,让光标往后移指向’qwe’时,add会添加到’qwe‘后面,remove与set会对’qwe’元素起作用。
  5. 例子
//不适用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集合的子类

  1. ArrayList:底层数据结构为数组,查询快,增删慢
  2. LinkedList:底层数据结构为链表,查询慢,增删快

以上是关于第十节——List集合的主要内容,如果未能解决你的问题,请参考以下文章

第十节课:再议数据结构与数据类型

自动化测试第十节---多线程继承列表推导发邮件

第十节,While循环

git第十节--git hub

第十节:numpy之数组文件操作

python循环语句(第十节)