List

List

List 接口基本介绍

List 接口是 Collection 接囗的子接口

站在数据结构的角度来看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作

在这里插入图片描述

  1. List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复

    List list = new ArrayList();
    list.add("jack");
    list.add("tom");
    list.add("mary");
    list.add("sjy");
    list.add("tom");
    System.out.println("list=" + list);
    
    //输出结果:list=[jack, tom, mary, sjy, tom]
    
  2. List集合中的每个元素都有其对应的顺序索引,即支持索引

    //索引是从 0 开始的
    System.out.println(list.get(3));//sjy
    
  3. List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素

  4. JDK API中List接口常用的实现类有:ArrayList、LinkedList和Vector

  5. 注意:List是个接口,并不能直接用来实例化。 如果要使用,必须去实例化List的实现类。

  6. 在集合框架中,ArrayList和LinkedList都实现了List接口

List 接口的常用方法

List中提供了好的方法,具体如下:

在这里插入图片描述

虽然方法比较多,但是常用方法如下:

在这里插入图片描述

List list = new ArrayList();
list.add("张三丰");
list.add("贾宝玉");

在 index 位置插入 ele 元素

//void add(int index, Object ele):在 index 位置插入 ele 元素

        //在 index = 1 的位置插入一个对象
        list.add(1, "yyy");
        System.out.println("list=" + list);

//输出结果:list=[张三丰, yyy, 贾宝玉]

从 index 位置开始将 eles 中的所有元素添加进来

//boolean addAll(int index, Collection eles):从 index 位置开始将 eles 中的所有元素添加进来

//接上面:list=[张三丰, yyy, 贾宝玉]

        List list2 = new ArrayList();
        list2.add("jack");
        list2.add("tom");
        list.addAll(1, list2);
        System.out.println("list=" + list);

//输出结果:list=[张三丰, jack, tom, yyy, 贾宝玉]

获取指定 index 位置的元素

//Object get(int index):获取指定 index 位置的元素

返回 obj 在集合中首次出现的位置

//int indexOf(Object obj):返回 obj 在集合中首次出现的位置

//接上面:list=[张三丰, jack, tom, yyy, 贾宝玉]

        System.out.println(list.indexOf("tom"));//2

返回 obj 在当前集合中末次出现的位置

//int lastIndexOf(Object obj):返回 obj 在当前集合中末次出现的位置

//接上面:list=[张三丰, jack, tom, yyy, 贾宝玉]

        list.add("sss");
        System.out.println("list=" + list);
        System.out.println(list.lastIndexOf("sss"));//5

//第4行输出结果:list=[张三丰, jack, tom, yyy, 贾宝玉, sss]

移除指定 index 位置的元素,并返回此元素

//Object remove(int index):移除指定 index 位置的元素,并返回此元素

//接上面:list=[张三丰, jack, tom, yyy, 贾宝玉, sss]

        list.remove(0);
        System.out.println("list=" + list);

//输出结果:list=[jack, tom, yyy, 贾宝玉, sss]

设置指定 index 位置的元素为 ele, 相当于是替换

//Object set(int index, Object ele):设置指定 index 位置的元素为 ele, 相当于是替换

//接上面:list=[jack, tom, yyy, 贾宝玉, sss]

		list.set(1, "玛丽");
        System.out.println("list=" + list);

//输出结果:list=[jack, 玛丽, yyy, 贾宝玉, sss]

返回从 fromIndex 到 toIndex 位置的子集合

//List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合

//接上面:list=[jack, 玛丽, yyy, 贾宝玉, sss]

        //注意返回的子集合 fromIndex <= subList < toIndex(前闭后开)
        List returnlist = list.subList(0, 2);
        System.out.println("returnlist=" + returnlist);

//输出结果:returnlist=[jack, 玛丽]

练习

在这里插入图片描述

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListExercise {
    public static void main(String[] args) {
        List list = new ArrayList();
        for (int i = 0;i < 12;i++) {
            list.add("hello" + i);
        }

        //在2号位插入一个元素"sjy"
        list.add("sjy");
        System.out.println("list=" + list);

        //获得第5个元素
        System.out.println("list=" + list.get(4));

        //删除第6个元素
        list.remove(5);
        System.out.println("list=" + list);

        //修改第7个元素
        list.set(6,"西游记");
        System.out.println("list=" + list);

        //再使用迭代器遍历集合
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println("obj=" + obj);
        }
    }
}
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值