数据结构ArrayList

        在编程中,ArrayList 是一个非常常用的数据结构,特别是在 Java 语言中。ArrayList 属于 Java 集合框架(Java Collections Framework)的一部分,它实现了 List 接口。ArrayList 是一个动态数组,可以容纳任何类型的对象(在 Java 中是泛型化的,所以你可以指定 ArrayList 容纳的元素类型)。

特点

动态大小:

        与普通的数组不同,ArrayList 的大小是动态的。当向 ArrayList 中添加元素时,如果元素数量超过了当前数组的容量,ArrayList 会自动扩容。

随机访问:

        与链表相比,ArrayList 支持快速的随机访问。你可以通过索引直接访问或修改 ArrayList 中的任何元素,其时间复杂度为 O(1)。

元素有序:

        ArrayList 中的元素是有序的,即元素的插入顺序与它们在 ArrayList 中的顺序相同。

允许重复元素:ArrayList 可以包含重复的元素。

基本操作

添加元素:使用 add(E e) 方法在列表的末尾添加指定的元素,或使用 add(int index, E element) 方法在列表的指定位置插入指定的元素。

访问元素:使用 get(int index) 方法通过索引访问指定位置的元素。

删除元素:使用 remove(int index) 方法删除指定位置的元素,或使用 remove(Object o) 方法删除首次出现的指定元素。

遍历元素:可以使用传统的 for 循环结合 get 方法遍历 ArrayList,也可以使用增强的 for 循环(也称为 "for-each" 循环)或 Java 8 引入的 Stream API 遍历。

示例

import java.util.ArrayList;  
  
public class ArrayListExample {  
    public static void main(String[] args) {  
        // 创建一个 ArrayList,用于存储 String 类型的元素  
        ArrayList<String> fruits = new ArrayList<>();  
  
        // 向 ArrayList 中添加元素  
        fruits.add("Apple");  
        fruits.add("Banana");  
        fruits.add("Cherry");  
  
        // 遍历 ArrayList  
        for (String fruit : fruits) {  
            System.out.println(fruit);  
        }  
  
        // 访问特定位置的元素  
        System.out.println("The first fruit is: " + fruits.get(0));  
  
        // 删除元素  
        fruits.remove("Banana");  
  
        // 再次遍历 ArrayList  
        System.out.println("After removing Banana:");  
        for (String fruit : fruits) {  
            System.out.println(fruit);  
        }  
    }  
}

注意事项

        当向 ArrayList 添加大量元素时,如果内部数组扩容频繁,可能会影响性能。因此,如果事先知道要存储的元素数量,可以调用 ensureCapacity(int minCapacity) 方法来设置 ArrayList 的初始容量。

        ArrayList 不是线程安全的。如果需要在多线程环境中使用,需要考虑同步问题,或者使用 Vector 类(虽然 Vector 类也是基于动态数组实现的,但它是线程安全的)。不过,更推荐的做法是使用 Collections.synchronizedList(List<T> list) 方法将 ArrayList 包装成线程安全的列表,或者使用 Java 并发包(java.util.concurrent)中的并发集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值