• 非零基础自学Java (老师:韩顺平) 第14章 集合 14.4 List 接口和常用方法


    非零基础自学Java (老师:韩顺平)

    ✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】

    第14章 集合

    14.4 List 接口和常用方法
    14.4.1 List接口基本介绍

    在这里插入图片描述

    List 接口是 Collection 接口的子接口

    • List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
    • List集合中的每个元素都有其对应的顺序索引,即支持索引。
    • List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。

    【常用的有:ArrayList、LinkedList和Vector】

    【举个栗子】

    package com.dingjiaxiong.list_;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * ClassName: List_
     * date: 2022/9/4 21:10
     *
     * @author DingJiaxiong
     */
    
    public class List_ {
        @SuppressWarnings({"all"})
        public static void main(String[] args) {
            //1. List 集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
            List list = new ArrayList();
            list.add("Jack");
            list.add("Tom");
            list.add("Mary");
            list.add("韩老师");
            list.add("Tom");
    
            System.out.println("list = " + list);
    
            //2. List 集合中的每个元素都有其对应的顺序索引,即支持索引
            //索引从0开始
            System.out.println(list.get(3));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    运行结果

    在这里插入图片描述

    14.4.2 List 接口的常用方法
    package com.dingjiaxiong.list_;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * ClassName: ListMethod
     * date: 2022/9/4 21:13
     *
     * @author DingJiaxiong
     */
    
    public class ListMethod {
        @SuppressWarnings({"all"})
        public static void main(String[] args) {
            List list = new ArrayList();
            list.add("张三丰");
            list.add("贾宝玉");
            //在 index = 1 的位置插入一个对象
            list.add(1,"韩老师");
            System.out.println("list = " + list);
    
    //        boolean addAll(int index, Collection eles):从 index 位置开始将 所有元素添加进来
            List list2 = new ArrayList();
            list2.add("Jack");
            list2.add("Tom");
            list.addAll(1,list2);
    
            System.out.println("list = " + list);
    
    //        Object get(int index):获取指定 index 位置的元素
            System.out.println(list.get(2));
    
    //        int indexOf(Object obj):返回 obj 在集合中首次出现的位置
            System.out.println(list.indexOf("Tom"));
    
    //        int lastIndexOf(Object obj):返回 obj 在当前集合中末次出现的位置
            list.add("韩老师");
            System.out.println("list = " + list);
            System.out.println(list.lastIndexOf("韩老师"));
    
    //        Object remove(int index):移除指定 index 位置的元素,并返回此元素
            System.out.println(list.remove(0));
            System.out.println("list = " + list);
    
    //        Object set(int index, Object ele):设置指定 index 位置的元素为ele,相当于替换
            list.set(1,"玛丽");
            System.out.println("list = " + list);
    
    //        List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合
    //        返回的子集合 fromIndex <= subList < toIndex (即不包含后面)
    
            List returnList = list.subList(0,2);
            System.out.println("returnList = " + returnList);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    运行结果

    在这里插入图片描述

    14.4.4 List 的三种遍历方式 [ArrayList, LinkedList,Vector]

    ① 方式一:使用迭代器

    ② 方式二:使用增强for

    ③ 方式三:使用普通for

    【举个栗子】

    package com.dingjiaxiong.list_;
    
    import java.util.*;
    
    /**
     * ClassName: ListFor
     * date: 2022/9/4 21:21
     *
     * @author DingJiaxiong
     */
    
    public class ListFor {
        @SuppressWarnings({"all"})
        public static void main(String[] args) {
            //List 接口的实现子类 Vector 、 LinkedList
    //        List list = new ArrayList();
    //        List list1 = new Vector();
            List list = new LinkedList();
    
            list.add("Jack");
            list.add("Tom");
            list.add("鱼香肉丝");
            list.add("北京烤鸭");
    
            //遍历
            System.out.println("=====使用迭代器遍历======");
            Iterator iterator = list.iterator();
            while (iterator.hasNext()){
                Object obj = iterator.next();
                System.out.println(obj);
            }
    
            System.out.println("=====使用增强for遍历======");
            for (Object o : list){
                System.out.println("o = " + o);
            }
    
            System.out.println("=====使用普通for遍历======");
            for (int i = 0; i < list.size(); i++) {
                System.out.println("对象 = " + list.get(i));
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    运行结果

    在这里插入图片描述

  • 相关阅读:
    Go----Go 语言基础之标识符、关键字、命名规范、变量、常量
    Aiomysql 与 Sqlalchemy 的使用
    redis非关系型数据库
    我也来扒一扒python的内存回收机制!
    基于PHP+MySQL的旅游景点网站的设计与开发
    mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
    基于 Spring Boot 博客系统开发(四)
    气传导耳机有哪些品牌?性能不错的气传导耳机分享
    左程云 递归+动态规划
    缓存与数据库双写一致性问题解决方案
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126948712