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 课程。
