跳转至

Java 中使用值初始化 ArrayList

简介

在 Java 编程中,ArrayList 是一个常用的动态数组实现类,它允许我们在运行时动态地添加、删除和访问元素。在许多情况下,我们需要在创建 ArrayList 的同时就初始化一些值。本文将深入探讨在 Java 中如何使用值初始化 ArrayList,包括基础概念、使用方法、常见实践以及最佳实践。

目录

  1. 基础概念
  2. 使用方法
    • 使用 add 方法逐个添加值
    • 使用 Arrays.asList() 方法
    • 使用 Java 9 的 List.of() 方法
  3. 常见实践
    • 初始化固定大小的 ArrayList
    • 从其他集合初始化 ArrayList
  4. 最佳实践
    • 选择合适的初始化方法
    • 性能考虑
  5. 小结
  6. 参考资料

基础概念

ArrayListjava.util 包中的一个类,它实现了 List 接口。与普通数组不同,ArrayList 的大小是可变的,这使得它在处理动态数据时非常方便。初始化 ArrayList 并赋予初始值,可以让我们在程序开始时就准备好一些常用的数据,提高代码的可读性和可维护性。

使用方法

使用 add 方法逐个添加值

这是最基本的初始化 ArrayList 的方法。我们可以先创建一个空的 ArrayList,然后使用 add 方法逐个添加元素。

import java.util.ArrayList;
import java.util.List;

public class ArrayListAddExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

使用 Arrays.asList() 方法

Arrays.asList() 方法可以将一个数组转换为 List。我们可以利用这个方法来快速初始化 ArrayList

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayListArraysAsListExample {
    public static void main(String[] args) {
        String[] fruitArray = {"Apple", "Banana", "Cherry"};
        List<String> fruits = new ArrayList<>(Arrays.asList(fruitArray));

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

使用 Java 9 的 List.of() 方法

从 Java 9 开始,List 接口提供了一个静态方法 of(),可以创建一个不可变的 List。我们可以使用这个 List 来初始化 ArrayList

import java.util.ArrayList;
import java.util.List;

public class ArrayListListOfExample {
    public static void main(String[] args) {
        List<String> immutableList = List.of("Apple", "Banana", "Cherry");
        List<String> fruits = new ArrayList<>(immutableList);

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

常见实践

初始化固定大小的 ArrayList

有时候我们需要创建一个具有固定大小的 ArrayList,并初始化一些默认值。

import java.util.ArrayList;
import java.util.List;

public class FixedSizeArrayListExample {
    public static void main(String[] args) {
        int size = 5;
        List<Integer> numbers = new ArrayList<>(size);
        for (int i = 0; i < size; i++) {
            numbers.add(i * 2);
        }

        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

从其他集合初始化 ArrayList

我们可以从其他集合(如 Set)初始化 ArrayList

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ArrayListFromSetExample {
    public static void main(String[] args) {
        Set<String> fruitSet = new HashSet<>();
        fruitSet.add("Apple");
        fruitSet.add("Banana");
        fruitSet.add("Cherry");

        List<String> fruits = new ArrayList<>(fruitSet);

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

最佳实践

选择合适的初始化方法

  • 如果需要逐个添加少量元素,使用 add 方法是简单直接的选择。
  • 如果有一个数组,使用 Arrays.asList() 方法可以快速转换为 List 并初始化 ArrayList
  • 对于 Java 9 及以上版本,List.of() 方法创建不可变 List 后再初始化 ArrayList,适用于需要创建不可变数据结构的场景。

性能考虑

  • add 方法逐个添加元素时,如果预先知道元素数量,建议使用 ArrayList(int initialCapacity) 构造函数来指定初始容量,以减少动态扩容的开销。
  • Arrays.asList() 返回的 List 是固定大小的,不能添加或删除元素,直接使用它初始化 ArrayList 可以避免不必要的转换。
  • List.of() 创建的不可变 List 性能较好,因为它不需要支持元素的修改操作。

小结

在 Java 中初始化 ArrayList 并赋予初始值有多种方法,每种方法都有其适用场景。通过了解这些方法和最佳实践,我们可以根据具体需求选择最合适的方式来初始化 ArrayList,提高代码的质量和性能。

参考资料