Java-ArrayList集合快速入门

文章目录

1. 集合

集合是与数组类似,也是一种容器,但是其存储容量可变。

  • 数组的特点
    • 数组定义完成后,类型确定、长度固定。
    • 适合做数据个数和类型确定的场景。
    • 存在问题:当进行个数不确定且要进行增删数据的场景时,数组是不太合适的。
  • 集合的特点
    • 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
    • 集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
    • 集合提供了很多丰富好用的功能,而数组的功能很单一。

2. ArrayList集合

ArrayList是集合的一种,它支持索引。

  • ArrayList集合的特点:
    • 底层是数组实现的,长度可以变化。
  • 泛型的使用:
    • 用于约束集合中的数组元素类型。

3. ArrayList类的常用方法

3.1 构造方法

构造器 说明
public ArrayList() 创建一个空的集合对象

3.2 添加元素方法

方法名 说明
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index,E element) 在此集合中的指定位置插入指定的元素
import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        // 1. 创建ArrayList集合对象
        ArrayList list = new ArrayList();

        // 2. 添加数据
        list.add("拉布拉多");
        list.add("拉的不多");
        list.add(10);
        list.add(20.1);
        list.add('猫');
        list.add(true);
        list.add(false);
        System.out.println(list);

        // 3. 给指定索引插入元素
        list.add(1, "阿拉斯加");
        System.out.println(list);
    }
}
// 打印输出
[拉布拉多, 拉的不多, 10, 20.1, 猫, true, false]
[拉布拉多, 阿拉斯加, 拉的不多, 10, 20.1, 猫, true, false]

4. 泛型

  • 概述:

    • 比如:ArrayList 就是一个泛型,可以在编译阶段约束集合对象只能操作某种数据类型。
  • 举例:

    • ArrayList:此集合只能操作字符串类型的元素
    • ArrayList:此集合只能操作整数类型的元素
  • 注意:

    • 集合中只能存储引用类型,不支持基本数据类型。
  • 代码演示:

    import java.util.ArrayList;
    
    public class ArrayListDemo {
        public static void main(String[] args) {
            // 1. 创建ArrayList集合对象
    //      ArrayList<String> list = new ArrayList<String>();
    //							        从jdk1.7开始,泛型后面的类型声明可不写
            
            ArrayList<String> list = new ArrayList<>();
            
            // 2. 添加数据
            list.add("拉布拉多");
            list.add("拉的不多");
            list.add(10);      // 报错
            list.add(20.1);    // 报错
            list.add(true);    // 报错
            System.out.println(list);
    
            // 3. 给指定索引插入元素
            list.add(1, 99);    // 报错
            System.out.println(list);
        }
    }
    

5. ArrayList集合常用API

方法名 说明
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数
  • 代码演示:

    import java.util.ArrayList;
    
    public class ArrayListDemo {
        public static void main(String[] args) {
            // 创建ArrayList集合对象
            ArrayList<String> list = new ArrayList<>();
    
            // 添加数据
            list.add("拉布拉多");
            list.add("德牧");
            list.add("拉布拉多");
            list.add("阿拉斯加");
            list.add("中华田园猫");
            list.add("金毛");
    
    //      public E get(int   index)    返回指定索引处的元素
            String e = list.get(3);
            System.out.println(e);
    
    //      public int size()            获取集合的大小(元素的个数)
            System.out.println(list.size());
    
            // 遍历集合
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
    
    //      public E remove(int   index)   删除指定索引处的元素,返回被删除的元素
            System.out.println(list);
            String e1 = list.remove(5);  // 删除金毛,用e1接一下返回值
            System.out.println(e1);
            System.out.println(list);
    
    //      public boolean remove(Object o)  删除指定的元素,返回删除是否成功
            System.out.println(list.remove("阿拉斯加"));
            System.out.println(list);
            System.out.println(list.remove("拉布拉多")); // 当集合里有相同元素时,只会删除这些相同元素里最先出现的元素
            System.out.println(list);
    
    //      public E set(int index,E   element)   修改指定索引处的元素,返回被修改的元素
            String e2 = list.set(2, "中华田园犬");  // "中华田园猫" --> "中华田园犬"
            System.out.println(e2);
            System.out.println(list);
        }
    }   
    
    // 输出结果:
    D:\Software\Java\jdk\bin\java.exe …
    阿拉斯加
    6
    拉布拉多
    德牧
    拉布拉多
    阿拉斯加
    中华田园猫
    金毛
    [拉布拉多, 德牧, 拉布拉多, 阿拉斯加, 中华田园猫, 金毛]
    金毛
    [拉布拉多, 德牧, 拉布拉多, 阿拉斯加, 中华田园猫]
    true
    [拉布拉多, 德牧, 拉布拉多, 中华田园猫]
    true
    [德牧, 拉布拉多, 中华田园猫]
    中华田园猫
    [德牧, 拉布拉多, 中华田园犬]
    
    Process finished with exit code 0
    
上一篇:java--list与数组相互转换


下一篇:markdown学习(typora)