java集合框架(三)ArrayList常见方法的使用

什么是ArrarList

ArrayList是Java中的一个动态数组类,可以根据实际需要自动调整数组的大小。ArrayList是基于数组实现的,它内部维护的是一个Object数组,默认初始化容量为10,当添加的元素个数超过了当前容量时,会自动扩容。

使用场景:

ArrayList适用于需要动态添加、删除元素的场景,可以用于存储不确定数量的数据。ArrayList也可以用于需要频繁访问集合元素的场景,因为它的底层是基于数组实现的,可以通过索引值快速访问元素。

另外,由于ArrayList是基于数组实现的,因此在数据量较大时,会占用较多的内存空间,因此需要考虑内存的使用。对于频繁进行插入、删除操作的场景,可以使用LinkedList来代替ArrayList。

总之,ArrayList更适合于需要频繁访问、添加、删除元素的场景,而LinkedList则更适合于需要频繁进行插入和删除操作的场景。

ArrayList也被广泛用于Java中的集合框架,例如Java中的List和Vector都是基于ArrayList实现的。下面是ArrayList常见的方法及其使用方法。

常见方法

返回类型方法描述
booleanadd(E o)将指定元素追加到此列表的结尾。
voidadd(int index, E element)将指定的元素插入此列表中的指定位置。
booleanaddAll(Collection<? extends E> c)按照指定 Collection 的迭代器所返回的元素顺序,将该 Collection 中的所有元素追加到此列表的尾部。
booleanaddAll(int index, Collection<? extends E> c)从指定的位置开始,将指定 Collection 中的所有元素插入到此列表中。
voidclear()从此列表中移除所有元素。
voidensureCapacity(int minCapacity)如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
Eget(int index)返回此列表中指定位置上的元素。
intindexOf(Object elem)搜索指定参数第一次出现的位置,使用 equals 方法进行相等性测试。
booleanisEmpty()测试此列表中是否没有元素。
intlastIndexOf(Object elem)返回指定的对象在列表中最后一次出现的位置索引。
Eremove(int index)移除此列表中指定位置处的元素。
booleanremove(Object o)从此列表中移除指定元素的单个实例(如果存在),此操作是可选的。
protected voidremoveRange(int fromIndex, int toIndex)移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
Eset(int index, E element)用指定的元素替代此列表中指定位置上的元素。
intsize()返回此列表的元素数。

下面是一个示例代码:

add()方法
在ArrayList末尾添加元素或在指定位置添加。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        System.out.println(list);
    }
}

输出结果为:

[apple, banana, orange]

get()方法
获取指定位置元素。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        String fruit = list.get(1);
        System.out.println(fruit);
    }
}

输出结果为:

banana

remove()方法
删除指定位置或指定元素。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.remove(1);
        System.out.println(list);
        list.remove("orange");
        System.out.println(list);
    }
}

输出结果为:

[apple, orange]
[apple]

size()方法
获取ArrayList的元素个数。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        int size = list.size();
        System.out.println(size);
    }
}

输出结果为:

3

set()方法
替换指定位置的元素。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.set(1, "pear");
        System.out.println(list);
    }
}

输出结果为:

[apple, pear, orange]

indexOf()方法
查找指定元素的位置。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        int index = list.indexOf("banana");
        System.out.println(index);
    }
}

输出结果为:

1

clear()方法
清空ArrayList中的所有元素。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.clear();
        System.out.println(list);
    }
}

输出结果为:

[]

总结

ArrayList 的好处主要有以下几点:

  1. 高效的随机访问:由于 ArrayList 内部是基于数组实现的,支持通过索引直接访问元素,所以随机访问元素的效率很高。

  2. 高效的遍历:ArrayList 的内部数据结构是连续的内存块,所以在遍历元素时非常高效,时间复杂度为O(n)。

  3. 紧凑的内存占用:ArrayList 的元素存储在连续的内存块中,不需要额外的指针来连接元素,所以占用的内存空间相对较小。

  4. 方便的元素访问和修改:ArrayList 可以通过索引来访问和修改元素,提供了一系列方便的方法,比如get、set等。

  5. 支持动态扩容:当 ArrayList 的容量不足时,会自动扩容,不需要手动操作。这使得 ArrayList 在存储大量元素时更加方便。

  6. 支持快速的插入和删除操作:ArrayList 在末尾插入或删除元素的效率较高,时间复杂度为O(1)。而在中间插入和删除元素的效率较低,需要移动后续元素。

总的来说,ArrayList 在随机访问元素、遍历元素和末尾插入和删除元素的场景下表现较好,是一种常用的集合类。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值