Java 中的 ArrayList:初学者入门 [2022]
已发表: 2022-11-22数组是每种编程语言中广泛使用且必不可少的数据结构,但有一个缺点——它的大小是固定的。 让我们看看 Java 中的 ArrayList 如何帮助解决这个问题。
数组可以有两种类型:静态数组或动态数组。 在 Java 等编程语言中,数组不能动态增加。 相反,数组的大小是在数组初始化期间声明的。 但是,在许多情况下,这会导致许多问题。 为了解决这个问题,Java 中使用了 ArrayLists。 当元素被推送到 ArrayList 时,数组大小会自动增加。
在本文中,您将了解 Java 中的 ArrayLists。 您将了解 Array 和 ArrayList 之间的核心区别,并了解不同类型的 ArrayList 以及如何使用它们。
数组与 ArrayList
Array 和 ArrayList 之间的主要区别在于 Array 的大小是静态的,而 ArrayList 的大小可以是动态的。 由于数组是固定的,因此遍历数组的时间比动态数组少。
它们之间还有一些差异。
- 静态数组可以是一维或多维的,但 ArrayList 只能是一维的。
- 数组是 Java 中可用的原始数据结构。 但是 ArrayList 是 Java 中集合框架 API 的一部分。 它建立在数组之上。
- 您可以声明具有原始数据类型的数组。 不能在 ArrayList 中使用原始数据类型。 如果要使用原始数据类型,则需要使用该数据类型对应的包装类。
Java 中 ArrayList 的类型
ArrayLists 可以是任何类型。 但是您需要传递相应的包装器类,因为您不能在 ArrayList 中传递原始数据类型。
您可以通过传递包装类(如Integer
或String
)来添加简单的数据类型,如整数或字符串类型。
您还可以传入复杂类型,如 ArrayLists 的 ArrayLists、hashmaps 等。
让我们看一下在 ArrayList 中使用自定义类的示例。
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
在上面的代码示例中,创建了一个User
类型的 ArrayList。 您将了解有关以下示例中使用的方法的更多信息。
在 Java 中创建一个 ArrayList
您已经了解了 Java 中 ArrayList 的基础知识。 现在让我们看一下 ArrayList 的语法,然后,我们还将了解如何在 Java 代码中使用它。
ArrayList<Type> listName = new ArrayList<>();
上面的代码片段显示了定义 ArrayList 的语法。 Type
定义了 ArrayList 的类型。 例如,如果你想声明一个整数数据类型的 ArrayList,你可以传入<Integer>
。 请注意,您不能传递int
,因为它是原始数据类型。
您还需要导入java.util.ArrayList
以在您的程序中使用 ArrayList。 下面是声明 ArrayList 的程序的基本示例:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
在上面的代码中,声明了一个名为rainbow
的String
类型的 ArrayList。
要使用 ArrayList,有多种方法可用。 让我们来看看几种方法。
add
方法
ArrayList 类提供了各种方法来执行操作,例如添加或删除元素、获取值、在特定位置设置值、清除 ArrayList 等。
我们将看到的第一个方法是add
方法。
add
方法用于将单个项目添加到ArrayList
。 add
的语法如下所示。
arrayList.add(int i, Element)
现在让我们了解语法。 第一个参数i
是一个可选参数,表示要添加的项目所在的索引位置。 第二个参数Element
是你要添加的元素。 现在让我们来看一个例子。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
rainbow.add("Violet")
将一个元素添加到 ArrayList 的末尾。 并且rainbow.add(0, "Red")
将元素Red
添加到 ArrayList 的索引位置0
。 add()
方法在成功插入项目时返回true
。
get
方法
get
方法用于从 ArrayList 的指定位置获取值。
arrayList.get(int i);
上面语法中显示的i
是索引位置。 例如,如果你想从索引位置1
获取项目,写arrayList.get(1)
。

rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
上面的代码将从 ArrayList rainbow
返回Violet
。
set
方法
set
方法用于替换项目的值。 例如,如果您想要替换索引位置0
处的项目的值,您可以编写rainbow.set(0, "Purple")
,假设您有一个名为rainbow
的 ArrayList。
set
方法的语法如下,
arrayList.set(int i, Element);
其中i
是索引位置, Element
是新元素的值。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
在上面的示例中,我们将两个值添加到名为rainbow
的 ArrayList 中。 首先,添加元素Violet
,然后在 ArrayList 的位置0
处添加项Red
。 此时,完整的 ArrayList 看起来像这样[Red, Violet]
。
现在,使用set
方法将索引位置1
处的元素替换为值Purple
。 替换值后,ArrayList 将如下所示[Red, Purple]
。
remove
方法
ArrayList remove
方法用于从 ArrayList 中删除一个值。 您可以传递值或要删除的值的索引位置。 remove
方法的语法如下所示:
arrayList.remove(Object value); // or arrayList.remove(int i);
让我们举个例子来更好地理解该方法。 假设您有一个名为rainbow
的 ArrayList,其值为[Violet, Red, Green]
。 现在,如果你想从 ArrayList 中移除Red
,你可以写rainbow.remove("Red");
. 在rainbow
ArrayList 上调用此方法将从中删除元素Red
。
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
您还可以传递索引位置以删除索引位置的项目。
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
clear
的方法
顾名思义, clear
方法从 ArrayList 中删除所有元素。 语法很简单,并且不带任何参数。
arraylist.clear()
让我们看一个例子,
rainbow.clear(); System.out.println(rainbow); Output: []
clear
方法不返回任何值。 相反,它会清除给定 ArrayList 的值。
size
方法
size
方法返回给定 ArrayList 的大小。 此方法也不采用任何参数。 语法如下所示。
arrayList.size();
这里的arrayList
就是ArrayList的名字。 让我们借助一个例子来理解size
方法。
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
此方法返回 ArrayList 大小的值。 在上面的示例中,ArrayList rainbow
由三个值组成,因此size
方法返回 3。
结论
本文讨论了什么是 ArrayList 以及它与 Array 的区别。 我们还看到了如何使用 ArrayList 类可用的各种方法来声明和使用 ArrayList。
如果您想更深入地学习 Java,请查看这些在线 Java 课程。