• Java——ArrayList类的常用方法


    前言

    ArrayList对象是可变数组,可以不设置长度。本文只介绍一些常用方法。该对象是从0下标开始计算的。主要分成七个部分,初始化,增加元素,删除元素,修改元素,查找元素,遍历,排序。更多方法见https://www.jiyik.com/w/java/java-arraylist

    初始化

    容量大小,加载因子,扩容倍数见https://blog.csdn.net/xuekunshan_/article/details/122753349
    ArrayList arr1 = new ArrayList(); 不初始化容量
    PS:若不初始化容量,则ArrayList的初始容量为10,并且当容量满的时候,用当前容量的0.5倍进行扩容
    ArrayList arr2 = new ArrayList(3); 初始化容量 容量为3
    ArrayList arr3 = new ArrayList(a); //a为集合或数组 用一个集合或数组初始化

    增加元素

    增加单个元素

    add(Object num); 从ArrayList对象的最末尾处添加num值,即在以ArrayList对象的长度的下标处的值设置为num.
    add(int index,Object num); 可以在index下标插入num值,index后面的元素全部后移一位。
    代码示例:

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(1);
            list.add(2);
            list.add(2,100);   //在2索引下插入100
            System.out.println(list);// 输出 [10, 20, 100, 1, 2]
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    增加一个集合的元素

    Boolean addAll(int index, Collection c) 将给定集合中的所有元素添加到 arraylist 中。如果成功插入元素,返回 true。如果给定的集合为 null,则超出 NullPointerException 异常。注意:如果 index 超出范围,则该方法抛出 IndexOutOfBoundsException 异常。
    index(可选参数)- 表示集合元素插入处的索引值 c - 要插入的集合元素
    如果 index 没有传入实际参数,元素将追加至数组的最末尾。

    import java.util.ArrayList;
    class Main {
        public static void main(String[] args){
            // 创建一个动态数组
            ArrayList<Integer> primeNumbers = new ArrayList<>();
            // 往动态数组里添加元素
            primeNumbers.add(3);
            primeNumbers.add(5);
            System.out.println("Prime Numbers: " + primeNumbers);//Prime Numbers: [3, 5]
            // 创建另外的一个动态数组
            ArrayList<Integer> numbers = new ArrayList<>();
            numbers.add(1);
            numbers.add(2);
            // 把 primeNumbers 的所有元素添加到 numbers 的动态数组中
            numbers.addAll(primeNumbers);
            System.out.println("Numbers: " + numbers); //Numbers: [1, 2, 3, 5]
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    删除元素

    remove(int index); 删除索引为index的元素,返回该元素
    remove(Object obj); 删除ArrayList对象中存在obj的元素,删除成功返回true,失败返回false;
    代码示例:

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(1);
            list.add(2);
            list.add(50);
            list.remove(3); //删除下标为3的元素
            System.out.println(list);  // 输出 [10, 20, 1, 50]
            System.out.println(list.remove((Integer)1)); //删除值为1的元素,删除成功,返回true
            System.out.println(list);  //输出 [10, 20, 50]
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    修改元素值

    set(int index, Object num); 将ArrayList对象的第index下标的元素的值修改为num。
    代码示例:

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(1);
            list.add(2);
            list.add(50);
            list.set(3, "asd");  //将下标为3的元素修改为asd
            System.out.println(list);  // 输出 [10, 20, 1, asd, 50]
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    查找元素

    查找元素返回值

    Object get(int index); 返回ArrayList对象第 index 下标的元素的值。

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
    //        ArrayList list = new ArrayList<>();
            list.add(10);
            list.add(20);
            list.add(1);
            list.add(2);
            list.add(50);
            // 因初始化的时候没有对ArrayList的类型进行确定,即ArrayList list = new ArrayList<>();
            // 所以无法使用int 获取list.get(3)的值,会出现不匹配 必须得使用Object获取
            Object num = list.get(3);  //获取到下标为3的元素
            System.out.println(num); //输出2
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    查找是否还有该元素,返回boolean值

    boolean contains(Object obj); 查找对象元素里是否存在obj,存在返回true ,否则返回false;
    boolean isEmpty(); 对象为空返回true, 不为空返回false;

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(1);
            list.add(2);
            list.add(50);
            boolean  num = list.contains(20);  //确认list是否包含20
            System.out.println(num); //输出true
            System.out.println(list.isEmpty()); //判断list是否为空  返回false
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    查找元素,返回索引int值

    int indexOf(Object obj); 查找对象元素里第一次出现的obj,则返回该下标,否则返回-1;
    int lastindexOf(Object obj); 查找对象元素里最后一次出现的obj,则返回该下标,否则返回-1;
    int size(); 返回ArrayList的长度

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(50);
            list.add(2);
            list.add(50);
            list.add(50);
            int  firstindex = list.indexOf(50);  //返回list第最后一次出现50的下标
            int  endindex = list.lastIndexOf(50); //返回list最后一次出现50的下标
            System.out.println(firstindex); //输出2
            System.out.println(endindex); //输出5
            System.out.println(list.size()); //list的大小 输出6
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    遍历

    将ArrayList转换成数组 toArray()返回的是一个对象数组

    import java.util.ArrayList;
    public class Test {
        public static void main(String[] args) {
            ArrayList list = new ArrayList();
            list.add(10);
            list.add(20);
            list.add(50);
            list.add(2);
            list.add(50);
            Object[] nums = new Object[list.size()];
            nums = list.toArray();
            System.out.println(list); // [10, 20, 50, 2, 50]
            System.out.println(nums.getClass().toString()); //class [Ljava.lang.Object;
            // 遍历方法
            for(Object i : nums) {
                System.out.print(i+" ");
            }
            System.out.println();
            for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i)+" ");
            }
            // 10 20 50 2 50
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    ArrayList 排序

    Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
    以下实例对字母进行排序:
    代码示例:

    import java.util.ArrayList;
    import java.util.Collections;  // 引入 Collections 类
    public class JiyikTest {
        public static void main(String[] args) {
            ArrayList<String> sites = new ArrayList<String>();
            sites.add("Taobao");
            sites.add("Wiki");
            sites.add("Jiyik");
            sites.add("Weibo");
            sites.add("Google");
            Collections.sort(sites);  // 字母排序
            for (String i : sites) {
                System.out.println(i);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    以上实例,执行输出结果为:

    Google
    Jiyik
    Taobao
    Weibo
    Wiki
    
    • 1
    • 2
    • 3
    • 4
    • 5

    以下实例对数字进行排序:
    代码示例:

    import java.util.ArrayList;
    import java.util.Collections;  // 引入 Collections 类
    
    public class Test {
        public static void main(String[] args) {
            ArrayList<Integer> myNumbers = new ArrayList<Integer>();
            myNumbers.add(33);
            myNumbers.add(15);
            myNumbers.add(20);
            myNumbers.add(34);
            myNumbers.add(8);
            myNumbers.add(12);
            Collections.sort(myNumbers);  // 数字排序
            for (int i : myNumbers) {
                System.out.println(i);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    以上实例,执行输出结果为:

    8
    12
    15
    20
    33
    34
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Small Tools(5) 前端项目搭建:Vue3+Vite2+TypeScript+Vue Router+Element Plus+Pinia
    STM32_驱动蜂鸣器自定义库
    电线延长寿命小妙招
    【PyTorch】基础知识及常用操作
    java基于微信小程序的投票系统 uniapp 小程序
    使用互传APP实现Android手机投屏到windows电脑
    [DownUnderCTF 2022] crypto部分复现
    Android 12.0 SystemUI 截图功能去掉分享按钮(屏蔽分享功能)
    MODBUS协议下,能否实现MCGS触摸屏与FX5U之间无线通讯?
    跳跃游戏II[贪心练习]
  • 原文地址:https://blog.csdn.net/weixin_44217936/article/details/126427174