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]
    }
}

增加一个集合的元素

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]
    }
}

删除元素

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]
    }
}

修改元素值

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]
    }
}

查找元素

查找元素返回值

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

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

查找是否还有该元素,返回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
    }
}

查找元素,返回索引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
    }
}

遍历

将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
    }
}

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);
        }
    }
}

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

Google
Jiyik
Taobao
Weibo
Wiki

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

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);
        }
    }
}

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

8
12
15
20
33
34
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值