Java 中的数组列表
Java 是一种流行且功能强大的编程语言,用于多个领域。因此,我们经常会遇到希望将数据存储为有序集合的情况。
Java 提供了 List
接口来将不同的数据格式存储为一个名称下的有序集合。
List
接口是许多子类的父接口。例如,ArrayList
、LinkedList
、Stack
和 Queue
实现 List
接口。
另一方面,数组
是另一种流行的存储具有相同数据类型的数据集合的方法。数组简单且易于处理。
我们可以轻松创建不同数据类型的数组并使用索引执行操作。本文将了解 Java 中 Lists 和数组的区别,并在 Java 中创建数组列表。
Java 中的列表是什么
在 Java 中,List
是具有相同数据类型的有序数据集合。Java 列表是基于索引的,可以使用索引访问其中的元素。
我们可以进行插入、删除、更新等操作。
Java 列表不限于存储原始数据类型。我们可以在列表中存储对象、数组和任何其他复杂的数据类型,我们应该注意,列表甚至可以存储空元素。
由于 List 是一个接口,我们不能直接实例化 List 类型的对象。
相反,Java 有各种 List 类型,例如 ArrayList
、LinkedList
等。这些类实现 List 接口并提供每种类型的特定功能。
我们还可以通过实现 List 接口并定义其方法来创建我们的列表类型。
我们可以定义和实例化一个 ArrayList
,如下所示。
List<datatype> nameList = new ArrayList<datatype>();
注意我们不能实例化一个接口,但是我们可以定义一个接口的对象。因此,我们需要实例化一个特定的列表类型,例如 ArrayList
、LinkedList
等。
我们可以使用下面给出的不同语法。由于 List 是 ArrayList
的父级,所以 List 类型对象可以存储一个 ArrayList
对象。
ArrayList<datatype> nameList = new ArrayList<datatype>();
上面的语法定义了一个 ArrayList
对象并实例化 ArrayList
类型。我们还可以定义 List 并在以后实例化它。
Java 中的数组是什么
另一方面,数组
非常简单,几乎可以在所有编程语言中找到。我们可以在 Java 中定义不同数据类型的数组。
与列表类似,数组也不限于原始数据类型,我们可以创建具有任何复杂数据类型的数组。
数组可以直接定义,也可以在 Java 中动态实例化。Java 数组继承对象类并实现可克隆和可序列化的接口。
下面给出了在 Java 中声明和实例化数组的语法。
datatype nameArr [] = new datatype[size];
我们还可以使用稍微不同的语法,如下所示。
datatype [] nameArr = new datatype[size];
请注意,我们也可以定义一个数组并在以后实例化它。
Java 中列表和数组的区别
- 数组是静态的且大小固定。另一方面,列表是动态且可调整大小的。Java 负责根据需要调整列表的大小。
- 实例化时,我们必须给出数组的大小,而列表不需要固定大小。
- 在性能上,数组比列表快。
- 我们必须使用一种方法来获取列表元素,而数组元素可以使用方括号来检索。
- 数组可以是多维的,但列表总是一维的。但是,我们可以创建嵌套列表。
- 简单的赋值运算符不能将元素添加到列表中。我们有一种方法可以将元素添加到列表中。在数组中,我们可以使用赋值运算符来存储元素。
在 Java 中创建数组列表
我们可以像创建任何其他数据类型或数据结构的列表一样在 Java 中创建数组列表。但是,我们不能实例化一个列表对象;因此,我们将为此操作选择特定的列表类型。
在创建数组列表时,我们首先通过传递列表包含的数据类型来定义列表。然后我们使用默认构造函数实例化列表。
一旦创建并实例化了数组列表,我们就可以使用 List
接口提供的 add()
方法将数组存储到列表中。
我们在下面的 Java 程序中创建了一个用于存储整数数组的列表。请注意,我们使用了 Integer
对象类型而不是原始整数类型。
原因是 Java 将原始数据类型转换为对象类型,然后再将它们存储在列表中。
我们使用了 ArrayList
来实例化一个对象。此外,我们创建了两个固定大小的整数数组,并将整数任意存储到其中。
你可以创建任何类型和大小的数组,但你应该记住使用你的对象类型更改列表定义。
最后,我们将数组添加到列表中,并使用 for
循环遍历列表和数组。另外,请注意,我们必须使用 List 的 get()
方法来检索列表元素,在本例中为整数数组。
代码如下。
import java.util.*;
public class ListofArrays {
public static void main(String []args)
{
List<Integer[]> list;
list = new ArrayList<Integer[]>();
// Let us create 2 arrays of type Integer
Integer [] arr1 = new Integer[5];
Integer [] arr2 = new Integer[5];
//arr1 stores numbers from 0 to 4
//arr2 stores the numbers from 5 to 9
for(int i=0;i<5;i++)
{
arr1[i] = i;
}
for(int i=0;i<5;i++)
{
arr2[i] = i+5;
}
//adding both arrays to list
list.add(arr1);
list.add(arr2);
//print elements of the list
for(int i=0;i<list.size();i++)
{
Integer [] arr = list.get(i);
for(int j=0;j<arr.length;j++)
{
System.out.print(arr[j]+ " ");
}
System.out.println();
}
}
}
输出:
0 1 2 3 4
5 6 7 8 9
由于我们将从 0 开始的五个整数存储到第一个数组中,并将接下来的五个整数存储到第二个数组中,因此我们得到了预期的输出。
在将数组添加到列表之前,我们必须小心定义和实例化数组。我们不能添加尚未实例化的数组。
但是,不要误解带有 null 元素的未实例化数组。我们仍然可以将 null 元素添加到列表中。
此外,请确保你不会犯常见错误,例如实例化 List 对象、将未实例化的数组添加到数组列表等。
结论
由于它们强大的实现和它们提供的工具,我们经常在 Java 中遇到这些列表。另一方面,数组可能是编程中最常用的数据结构。
因此,我们必须学习如何创建数组列表。
相关文章 - Java Array
- 如何在 Java 中连接两个数组
- 如何在 Java 中以十六进制字符串转换字节数组
- 用 Java 从数组中删除重复项
- 在 Java 中对数组进行切片
- 在 Java 中不使用 sort() 方法对数组进行排序
- Java 中的列表与数组