java List集合接口的介绍和使用全面教程

 更新时间:2023年07月04日 10:58:18   作者:adminwk  
这篇文章主要为大家介绍了java List集合接口的介绍和使用全面教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一.关于List集合类的继承关系图

List接口继承了Collection接口,而List接口下有三个重要的实现类:ArrayList,LinkedList,Vector

二.List接口的基本介绍

1.List接口是Collection接口的子接口

2.存入List集合中的元素是有序的(即添加顺序和取出顺序是一样的)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        list.add("mary");
        System.out.println("list="+list);//输出结果为:list=[jack, 10, true, mary] 添加顺序和取出顺序是一样的
    }

3.List集合里的元素是可以重复存入的

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        list.add("mary");
        //可以放入重复的数据jack
        boolean b = list.add("jack");
        System.out.println(b);//输出结果为:true
        System.out.println("list="+list);//输出结果为:list=[jack, 10, true, mary, jack] 
    }

4.List集合中的每一个元素都有自己对应的顺序索引,即支持索引(索引是从0开始)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        list.add("mary");
        list.add("jack");
        //获取索引为2的元素,即第三个元素
        Object o = list.get(3);
        System.out.println(o);//输出结果为:mary
    }

5.List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号取容器中的元素

6.JDK API中LIst接口的常用的实现类有:ArrayList,LinkedList,Vector

三.List接口的常用方法

由于List接口无法实例化,要想使用List接口的方法我们就用List的实现类ArrayList来演示它的常用方法

1.add(int index,Object o)方法:

在index位置插入o元素。(index表示下标,从0开始。o表示要插入的元素)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        //add(int index,Object o)方法的使用
        list.add(1,"小明");
        System.out.println("list="+list);//输出结果为:list=[张三, 小明, 李四, 王五]
    }

2.addAll(int index,Collection c)方法:

在index位置插入多个元素。(index表示下标,从0开始。c表示实现了Collection接口的子类多可以放入。如果元素插入成功返回true,否则返回false)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        //addAll(int index,Collection c)方法的使用
        List newList = new ArrayList<>();
        newList.add("小明");
        newList.add("小红");
        boolean b = list.addAll(1, newList);
        System.out.println(b);//输出结果:true
        System.out.println("list="+list);//输出结果:list=[张三, 小明, 小红, 李四, 王五]
    }

3.get(int index)方法:

获取下标为index位置上的元素(index表示下标,从0开始。)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        list.add("mary");
        list.add("jack");
        //获取索引为2的元素,即第三个元素
        Object o = list.get(1);
        System.out.println(o);//输出结果为:10
    }

4.indexOf(Object o)方法:

查找o对象在集合中首次出现的位置,即下标(如果没有就返回-1)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
         list.add("李四");
        //indexOf(Object o)方法的使用
        int index = list.indexOf("李四");
        System.out.println(index);//输出结果为:1
    }

5.lastIndexOf(Object o)方法:

查找o对象在集合中末次出现的位置,即下标(如果没有就返回-1)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //lastIndexOf(Object o)方法的使用
        int index = list.lastIndexOf("李四");
        System.out.println(index);//输出结果为:3
    }

6.remove(int index)方法:

移除index位置上的元素,并且返回此元素

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //remove(int index)方法的使用
        Object o = list.remove(1);
        System.out.println(o);//输出结果为:李四
        System.out.println("list="+list);//输出结果为:list=[张三, 王五, 李四]
    }

7.set(int index,Object o)方法:

修改index位置上的元素为o,即为替换,并返回被修改的元素

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //set(int index,Object o)方法的使用
        Object o = list.set(1, "小明");
        System.out.println(o);//输出结果为:李四
        System.out.println("list="+list);//输出结果为:list=[张三, 小明, 王五, 李四]
    }

8.subList(int fromIndex,int toIndex)方法:

返回从fromindex到toIndex位置上的集合(包括fromIndex位置但是不包括toIndex位置,即[formIndex,toIndex)。)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //subList(int fromIndex,int toIndex)方法的使用
        List newList = list.subList(1, 3);
        System.out.println("newList="+newList);//输出结果为:newList=[李四, 王五]
    }

四.List的三种遍历方式

1.使用Iterator(迭代器)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //使用Iterator(迭代器)遍历
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object o =  iterator.next();
            System.out.println(o);//遍历完最终输出结果为:张三 李四 王五 李四
        }
    }

2.使用曾强for循环

List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //使用曾强for循环遍历
        for (Object o : list) {
            System.out.println(o);//遍历完最终输出结果为:张三 李四 王五 李四
        }
    }

3.使用普通for循环,即利用下标遍历(下标从0开始)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("李四");
        //使用普通for循环遍历
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));//遍历完最终输出结果为:张三 李四 王五 李四
        }
    }

参考相关视频(韩顺平老师)

以上就是java List集合接口的介绍和使用全面教程的详细内容,更多关于java List集合接口的资料请关注脚本之家其它相关文章!

相关文章

  • Java判断浏览器是微信还是支付宝

    Java判断浏览器是微信还是支付宝

    这篇文章主要介绍了Java判断浏览器是微信还是支付宝的简单实现代码,需要的朋友可以参考下
    2018-06-06
  • jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    这篇文章主要介绍了jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • SpringCloud分布式链路追踪组件Sleuth配置详解

    SpringCloud分布式链路追踪组件Sleuth配置详解

    这篇文章主要介绍了SpringCloud链路追踪组件Sleuth配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-11-11
  • 从零开始学springboot整合feign跨服务调用的方法

    从零开始学springboot整合feign跨服务调用的方法

    这篇文章主要介绍了从零开始学springboot整合feign跨服务调用的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java线程池ForkJoinPool实例解析

    Java线程池ForkJoinPool实例解析

    这篇文章主要介绍了Java线程池ForkJoinPool实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java实现文件的归档和解档

    Java实现文件的归档和解档

    这篇文章主要为大家详细介绍了Java实现文件的归档和解档,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 详解JAVA设计模式之适配器模式

    详解JAVA设计模式之适配器模式

    这篇文章主要介绍了JAVA设计模式之适配器模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解
    2020-06-06
  • MybatisPlus特殊查询的实现介绍

    MybatisPlus特殊查询的实现介绍

    这篇文章主要介绍了MybatisPlus查询投影、聚合查询、分组查询、等值查询、范围查询、模糊查询、排序查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • SpringBoot中的声明式事务详解

    SpringBoot中的声明式事务详解

    这篇文章主要介绍了SpringBoot中的声明式事务详解,Spring采用统一的机制来处理不同的数据访问技术的事务, Spring的事务提供一个PlatformTransactionManager的接口,不同的数据访问技术使用不同的接口实现,需要的朋友可以参考下
    2023-08-08
  • java中多线程加锁的四种方式

    java中多线程加锁的四种方式

    Java中实现多线程安全的关键是加锁,主要方式有synchronized关键字、ReentrantLock类、ReadWriteLock接口和Semaphore类,本文就来介绍一下这四种方式,感兴趣的可以了解一下
    2024-10-10

最新评论