1.ArrayList
类
今天我们将探索这个ArrayList
类。这是称为集合的几个类中的第一个。在 Java 中,集合是一个广泛而有用的主题,以至于整个 CodeGym 任务都专门针对它们。
要完全理解集合的结构及其所有细微差别,您需要首先学习 OOP、接口、继承、多线程基础知识等等。
所以今天我们将熟悉最简单的集合。但是在足够深的层次上,您可以了解如何使用它以及它是如何工作的。现在,见见ArrayList
收藏。
背景故事
我将从一些背景开始。程序员真的不喜欢数组的一个方面:它们的大小不能改变这一事实。如果你需要在数组中存储三个以上的元素,但只有一个空单元格怎么办?
解决数组空间限制的唯一方法是创建一个非常大的数组,以容纳您可能需要存储的所有元素。但这通常是在浪费内存。如果一个数组通常包含两个或三个元素,但即使有很小的机会需要存储 100 个元素,那么就有必要创建一个容量可存储 100 个的数组。
那么程序员想出了什么呢?他们写了这个ArrayList
类,它做与类相同的工作Array
,但可以调整大小。
数组列表类
类名ArrayList
由两个词组成:Array + List。Array
是一个数组,List
是一个列表。
每个ArrayList
对象都包含一个普通的元素数组。当您从 中读取元素时ArrayList
,该对象会从其内部数组中检索它们。当您写入元素时,它会将它们写入内部数组。
ArrayList 类没有数组的所有缺点。它知道如何:
- 存储特定类型的元素
- 动态调整列表大小
- 将元素添加到列表的末尾
- 在列表的开头或中间插入元素
- 从列表中的任何位置删除元素
有关更多详细信息,请参见下文:
2.创建ArrayList
对象
要创建一个ArrayList
对象,您需要编写如下代码:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
其中ArrayList
是集合类型/类,TypeParameter
是集合中存储的元素的类型ArrayList
,name
是变量的名称ArrayList<TypeParameter>
。
该name
变量具有通用类型。它由两种类型组成:首先表示集合的类型,然后用尖括号表示集合中存储的元素的类型。
例子:
代码 | 描述 |
---|---|
|
整数列表 |
|
字符串列表 |
|
实数列表 |
与数组不同,集合不能存储原始类型,只能存储引用类型。因此,如果您需要 s 的集合int
,请改用Integer
包装类。
3.操作与ArrayList
最初,新创建的列表的长度为零,因为它包含 0 个元素。如果向列表中添加一个元素,则其长度会增加 1。如果删除添加的元素,则长度会减回零。
下表可以教你更多关于类的方法ArrayList
:
方法 | 描述 |
---|---|
|
将传递的元素添加到列表中 |
|
将元素添加到列表中的特定位置。 |
|
返回索引为的元素index |
|
分配value 给索引为的元素index |
|
移除索引为 的元素index 。返回删除的元素。 |
|
移除传递给方法的元素。如果有多个这样的元素,第一个将被删除。 |
|
清除列表,即从列表中删除所有元素。 |
|
检查列表是否包含value . |
|
检查列表是否为空。换句话说,列表的长度是否为零。 |
|
返回列表的大小,即列表中元素的数量。 |
|
返回包含列表元素的数组。 您需要将数组传递给方法。 |
这些方法几乎可以让您对列表做任何您想做的事情:交换元素、添加元素和删除元素。您可以使用单个命令清除列表,甚至可以将列表转换为数组。
ArrayList
4.和的比较Array
我不认为我们可以避免比较ArrayList
和数组。
您只能对数组执行 4 个操作:
- 创建数组
- 通过索引获取元素
- 通过索引设置元素
- 获取数组的长度
以下是应用于数组和的这些操作ArrayList
:
大批 | 数组列表 |
---|---|
|
|
|
|
|
|
|
|
让我们比较一下 anArrayList
和 array 的工作方式。比如我们来实现这个任务:“从键盘读取10个字符串,并以倒序显示在屏幕上”
使用数组 | 使用数组列表 |
---|---|
|
|
这个比喻很清楚。对于数组,一切都以某种方式更短更清晰。但ArrayList
也不难:要获取一个元素,我们使用get()
方法;改变一个元素,set()
方法;获取列表的长度,size()
方法。
那么为什么程序员要使用ArrayList
类呢?
当然,重点是普通数组没有的所有其他方法:
- 向列表中添加一个元素
- 在列表中间添加一个元素
- 在列表中查找一个元素
- 从列表中删除元素
GO TO FULL VERSION