Collection体系中,List集合是有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。List集合是指由List接口以及List接口的所有实现类组成的集合,List有序集合也称为序列,该界面的用户可以精确地控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。与Set集合不同,列表通常允许重复元素。

1.List集合特点

1)有序:存储和取出的元素顺序一致;

2)可重复:存储的元素可以重复。

2.List常用方法

1)添加功能

boolean add(E e):向集合中添加一个元素。

void add(int index, E element):在指定位置添加元素。

boolean addAll(Collection<? extends E> c):向集合中添加一个集合的元素。

2)删除功能

void clear():删除集合中的所有元素。

E remove(int index):根据指定索引删除元素,并把删除的元素返回。

boolean remove(Object o):从集合中删除指定的元素。

boolean removeAll(Collection<?> c):从集合中删除一个指定的集合元素。

3)修改功能

E set(int index, E element):把指定索引位置的元素修改为指定的值,返回修改前的值。

4)获取功能

E get(int index):获取指定位置的元素。

Iterator iterator():就是用来获取集合中每一个元素。

5)判断功能

boolean isEmpty():判断集合是否为空。

boolean contains(Object o):判断集合中是否存在指定的元素。

boolean containsAll(Collection<?> c):判断集合中是否存在指定的一个集合中的元素。

6)长度功能

int size():获取集合中的元素个数。

7)把集合转换成数组

Object[] toArray():把集合变成数组。

3.ListIterator列表迭代器

因为是通过List集合的listIterator()方法得到的,所以称为List集合特有的迭代器。


ListIterator的常用方法如下:

1)E next():返回迭代器中的下一个元素。

2)boolean hasNext():如果迭代具有更多元素,则返回true。

3)E previous():返回列表中的上一个元素。

4)boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true。

5)void add(E e):将指定的元素插入列表。


例如:

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Main {
    public static void main(String[] args) {
        List<String> l = new ArrayList<String>();
        l.add("hello");
        l.add("world");
        l.add("java");
        ListIterator<String> listit = l.listIterator();
        while(listit.hasNext()) {
            String s = listit.next();
            System.out.println(s);
        }
        System.out.println("www.dotcpp.com");
        while(listit.hasPrevious()) {
            String sp = listit.previous();
            System.out.println(sp);
        }
        System.out.println("www.dotcpp.com");
        ListIterator<String> listit2 = l.listIterator();
        while(listit2.hasNext()) {
            String s2 = listit2.next();
            if(s2.equals("world")) {
                listit2.add("dotcpp");
            }
        }
        System.out.println(l);
    }
}


运行结果如下:

hello
world
java
www.dotcpp.com
java
world
hello
www.dotcpp.com
[hello, world, dotcpp, java]


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)