java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java ArrayList用法

Java中ArrayList的常见用法示例小结

作者:Tomorrowland_D

本文介绍了Java的ArrayList,它是一个动态数组,可以自动调整大小,支持添加、删除、获取元素等操作,同时,还讨论了如何存储基本数据类型以及在多线程环境下的使用注意事项,感兴趣的朋友一起看看吧

Java 中的 ArrayList 是一个非常常用的动态数组,它属于 Java 集合框架的一部分。与普通数组不同,ArrayList 可以在需要时动态调整其大小。以下是 ArrayList 的一些详细介绍:

基本特性

常用方法

ArrayList<String> list = new ArrayList<>();

添加单个元素:add(E e)

list.add("apple");
list.add(1, "banana");
list.set(1, "orange");
list.remove(0);
list.remove("banana");
for (String item : list) {
    System.out.println(item);
}

性能注意事项

使用示例

import java.util.ArrayList;
public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 添加元素
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        // 插入元素
        list.add(1, "orange");
        // 访问和修改元素
        String fruit = list.get(0);
        list.set(1, "kiwi");
        // 删除元素
        list.remove("banana");
        // 输出列表
        for (String item : list) {
            System.out.println(item);
        }
    }
}

ArrayList 是适用于频繁访问和修改的场景,但在性能和安全性要求较高的情况下,选择其他集合(如 LinkedList 或同步列表)可能更为合适。

是的, ArrayList 只能存储引用数据类型,不能直接存储基本数据类型(如 intdoublechar 等)。这是因为 ArrayList 是基于 Java 的泛型实现的,而泛型只支持对象类型(引用类型),不支持基本数据类型。

如何存储基本数据类型?

虽然 ArrayList 不能直接存储基本数据类型,但 Java 提供了自动装箱(Autoboxing)机制,可以将基本数据类型自动转换为对应的包装类,使其间接存储基本数据类型。

常见的基本数据类型及其对应的包装类

基本数据类型包装类(引用类型)
intInteger
doubleDouble
charCharacter
booleanBoolean
floatFloat
longLong
shortShort
byteByte

示例:

ArrayList<Integer> intList = new ArrayList<>();
intList.add(10);   // 自动装箱,将 int 转为 Integer
intList.add(20);
intList.add(30);
System.out.println(intList); // 输出: [10, 20, 30]

在这个例子中,1020 和 30 是 int 类型的数据,但 Java 自动将它们转换为 Integer(包装类)对象,并存入了 ArrayList

取值时自动拆箱

存储在 ArrayList 中的包装类对象,在需要时会自动转换回基本数据类型(称为“拆箱”)。

示例:

int sum = 0;
for (int num : intList) {  // 自动拆箱,将 Integer 转为 int
    sum += num;
}
System.out.println("总和:" + sum);

注意事项

ArrayList<Integer> intList = new ArrayList<>();
intList.add(null); // 添加了一个 null
int num = intList.get(0); // 自动拆箱时抛出 NullPointerException

如果需要存储多个不同的基本数据类型?

如果你的 ArrayList 需要同时存储多种基本数据类型,可以考虑以下几种方式:

ArrayList<Object> list = new ArrayList<>();
list.add(123);        // 存储 Integer
list.add(45.67);      // 存储 Double
list.add("Hello");    // 存储 String
list.add(true);       // 存储 Boolean
for (Object obj : list) {
    System.out.println(obj.toString());
}

示例:

class Data {
    int intValue;
    double doubleValue;
    String stringValue;
    Data(int intValue, double doubleValue, String stringValue) {
        this.intValue = intValue;
        this.doubleValue = doubleValue;
        this.stringValue = stringValue;
    }
}
ArrayList<Data> dataList = new ArrayList<>();
dataList.add(new Data(10, 20.5, "Hello"));
for (Data data : dataList) {
    System.out.println(data.intValue + ", " + data.doubleValue + ", " + data.stringValue);
}

总结

到此这篇关于Java中ArrayList的常见用法的文章就介绍到这了,更多相关Java ArrayList用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文