Java 中的数组列表

Mohd Mohtashim Nawaz 2023年10月12日
  1. Java 中的列表是什么
  2. Java 中的数组是什么
  3. Java 中列表和数组的区别
  4. 在 Java 中创建数组列表
  5. 结论
Java 中的数组列表

Java 是一种流行且功能强大的编程语言,用于多个领域。因此,我们经常会遇到希望将数据存储为有序集合的情况。

Java 提供了 List 接口来将不同的数据格式存储为一个名称下的有序集合。

List 接口是许多子类的父接口。例如,ArrayListLinkedListStackQueue 实现 List 接口。

另一方面,数组是另一种流行的存储具有相同数据类型的数据集合的方法。数组简单且易于处理。

我们可以轻松创建不同数据类型的数组并使用索引执行操作。本文将了解 Java 中 Lists 和数组的区别,并在 Java 中创建数组列表。

Java 中的列表是什么

在 Java 中,List 是具有相同数据类型的有序数据集合。Java 列表是基于索引的,可以使用索引访问其中的元素。

我们可以进行插入、删除、更新等操作。

Java 列表不限于存储原始数据类型。我们可以在列表中存储对象、数组和任何其他复杂的数据类型,我们应该注意,列表甚至可以存储空元素。

由于 List 是一个接口,我们不能直接实例化 List 类型的对象。

相反,Java 有各种 List 类型,例如 ArrayListLinkedList 等。这些类实现 List 接口并提供每种类型的特定功能。

我们还可以通过实现 List 接口并定义其方法来创建我们的列表类型。

我们可以定义和实例化一个 ArrayList,如下所示。

List<datatype> nameList = new ArrayList<datatype>();

注意我们不能实例化一个接口,但是我们可以定义一个接口的对象。因此,我们需要实例化一个特定的列表类型,例如 ArrayListLinkedList 等。

我们可以使用下面给出的不同语法。由于 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 中列表和数组的区别

  1. 数组是静态的且大小固定。另一方面,列表是动态且可调整大小的。Java 负责根据需要调整列表的大小。
  2. 实例化时,我们必须给出数组的大小,而列表不需要固定大小。
  3. 在性能上,数组比列表快。
  4. 我们必须使用一种方法来获取列表元素,而数组元素可以使用方括号来检索。
  5. 数组可以是多维的,但列表总是一维的。但是,我们可以创建嵌套列表。
  6. 简单的赋值运算符不能将元素添加到列表中。我们有一种方法可以将元素添加到列表中。在数组中,我们可以使用赋值运算符来存储元素。

在 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 List