• ArrayList与顺序表


    一. 顺序表是什么

    顺序表是用一段物理地址连续存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

    二. ArrayList是什么

    在这里插入图片描述

    在集合框架中,ArrayList是一个普通的类,实现了List接口,它有以下几个特点:

    • ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。
    • ArrayList支持随机访问,但其插入和删除效率低。
    • ArrayList是可以clone的,是支持序列化的。
    • ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList。

    三. ArrayList的构造方法

    ArrayList提供了以下三种构造方法

    方法一:也是最推荐的方法
    在这里插入图片描述

    // 构造一个空的列表
    List<Integer> list = new ArrayList<>();
    
    • 1
    • 2

    方法二:
    在这里插入图片描述

    // 构造一个具有10个容量的列表
    List<Integer> list = new ArrayList<>(10);
    
    • 1
    • 2

    方法三:
    在这里插入图片描述

    List<Integer> list = new ArrayList<>(10);
    List<Integer> list2 = new ArrayList<>(list);
    
    • 1
    • 2

    重点
    对顺序表进行初始化的时候,一定要指定元素的类型,否则,任意类型的元素都可以存放,会造成严重后果。

    四. ArrayList的常见方法

    4.1 add()

    在这里插入图片描述

    public static void main(String[] args) {
        List<Integer> list=new ArrayList<>(); 
       //此处的add():将元素尾插进ArrayList中
        list.add(1);
        list.add(2);
        System.out.println(list);
        
        //此处的add():在list的index位置插入指定元素,index及后续的元素统一往后搬移一个位置
        list.add(1,10);
        System.out.println(list);
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    4.2 size()

    获取list中有效元素个数

     public static void main(String[] args) {
         List<Integer> list=new ArrayList<>();
         list.add(1);
         list.add(2);
         System.out.println(list);
         // 获取list中有效元素个数
         System.out.println(list.size());
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.3 remove()

    在这里插入图片描述

     public static void main(String[] args) {
            List<String> list=new ArrayList<>();
            list.add("苹果");
            list.add("香蕉");
            System.out.println(list);
            // 删除指定元素,找到了就删除,该元素之后的元素统一往前搬移一个位置,这里没有找到
            list.remove("梨");
            System.out.println(list);
            //删除list中index位置上的元素,这里要注意 index 是否有效
            list.remove(1);
            System.out.println(list);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    4.4 get()

    在这里插入图片描述

    public static void main(String[] args) {
         List<String> list=new ArrayList<>();
         list.add("苹果");
         list.add("香蕉");
         //获取index位置上的元素,注意index是否有效(index必须介于[0,size)间)
         System.out.println(list.get(0));
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    4.5 set()

    在这里插入图片描述

    public static void main(String[] args) {
         List<String> list=new ArrayList<>();
         list.add("苹果");
         list.add("香蕉");
         //设置index位置上的元素为指定元素,注意index是否有效
         list.set(1,"梨");
         System.out.println(list.get(1));
         System.out.println(list);
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    4.6 contains()

    在这里插入图片描述

    public static void main(String[] args) {
         List<String> list=new ArrayList<>();
         list.add("苹果");
         list.add("香蕉");
         //查看list中是否包含指定元素,包含返回true,否则返回false
         if(list.contains("西瓜")){
             System.out.println("list中包含西瓜元素");
         }else{
             System.out.println("list中不包含西瓜元素");
         }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    4.7 lastIndexOf()和 indexOf()

    在这里插入图片描述

    public static void main(String[] args) {
         List<String> list=new ArrayList<>();
         list.add("苹果");
         list.add("香蕉");
         list.add("梨");
         list.add("苹果");
         // 查找指定元素第一次出现的位置:indexOf从前往后找,lastIndexOf从后往前找
         System.out.println(list.indexOf("苹果"));
         System.out.println(list.lastIndexOf("苹果"));
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    4.8 subList()

    在这里插入图片描述

    public static void main(String[] args) {
            List<String> list=new ArrayList<>();
            list.add("苹果");
            list.add("香蕉");
            list.add("梨");
            list.add("苹果");
            // 截取list中[0, 2)之间的元素构成一个新的ArrayList返回
            List<String> list2=list.subList(0,2);
            System.out.println(list2);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    4.9 clear()

    清空ArrayList中的元素。

    以上就是ArrayList的常见方法!!

  • 相关阅读:
    C Primer Plus(6) 中文版 第9章 函数 9.2 ANSI C 函数原型
    【计算机网络 - 第六章】链路层
    普中51单片机:串口通信原理与应用指南(八)
    Log4j2
    stm32f10系列的独立看门狗与窗口看门狗
    雾锁王国服务器配置怎么选择?阿里云和腾讯云
    【如何学习CAN总线测试】——鲁棒性测试
    C++11标准模板(STL)- 算法(std::unique_copy)
    母婴店怎么在微信小程序卖东西
    Java编程学习-MySQL(数据库CRUD语句)
  • 原文地址:https://blog.csdn.net/m0_63904107/article/details/132546735