CodeGym /Java 博客 /随机的 /Java 中 Array 到 ArrayList 的转换
John Squirrels
第 41 级
San Francisco

Java 中 Array 到 ArrayList 的转换

已在 随机的 群组中发布
你好!在今天的课程中,我们将讨论如何在 Java 中初始化数组以及如何将数组转换为 Arraylist。数组是 Java 中 Container 类的扩展,当数据量明确时,可以用作临时保存一组原始数据类型的方法。但是数组在创建时是静态的,这意味着当您创建一个数组时,您不能更改它包含的项目数。你应该记得如何在 java 中初始化一个数组;它看起来像这样:

datatype[] isArray;
其中数据类型是任何原始数据类型,如 int、float、long 甚至 String。您也可以像这样在声明之后放置方括号:

datatype isArray[];
那么我们如何将这个具有一定数量元素的静态数组转换为 ArrayList 呢?那么,首先,让我们看看什么是 ArrayList。

数组列表

ArrayList 的名称可能与 Array 相似,但处理方式完全不同。那是因为 ArrayList 没有扩展 Container 类,它扩展了 List 类。这意味着一切都会得到不同的处理。一方面,因为它是一个列表,所以您可以以不同的方式对其进行操作。您可以使用add(element)增加或减少 ArrayList 的大小,这会将元素放在 List 的末尾,并在必要时将大小增加一。或者你可以使用trimToSize()它删除末尾的所有空索引并将 ArrayList 修剪为其当前大小。因此您可以看到使用 ArrayList 而不是仅使用数组有一些优势。接下来,我们将向您展示从 Array 转换为 ArrayList 的两种方法,以及如何在需要时返回。

在 Java 中从 Array 移动到 ArrayList 和 ArrayList 到 Array

因此,假设您编写了一个程序来记录您的公司手头有多少螺母和螺栓用于修理猫树。多年来,您只需要 30 种不同类型的数据,因此只需使用数组进行跟踪就很容易了。但是现在您有一个新客户,他要求您另外进货 5 种类型。您如何更改您的程序并保留所有数据,并防止您在接听另一个客户时再次这样做?这是正确的!一个数组列表!那么如何将 Java Array 转换为 ArrayList 呢?共有三种方法。使用.asList()方法 Java 数组有一个很棒的工具,您可以在查看名为.asList()的 API 时看到它。所以你可以这样写:

boltInventory.asList(bolts);
此方法的问题在于它不会创建真正的 ArrayList。它所做的是创建一个大小固定且不可更改的列表。所以你仍然不能以动态的方式改变大小。尝试添加或删除元素将导致异常。因此,虽然这确实有其用途,但它并不是真正的转换。但是我们可以使用它。使用.asList()作为参数 这是在 Java 中将数组转换为列表的第二种方法。因为.asList()方法创建了一个 List,我们可以使用它来传递对实际 ArrayList 的引用。下面是初始化 ArrayList 的方法:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
这将创建一个包含十个空单元格的 ArrayList。但是,末尾的()可以用来传递一个参数来填充 ArrayList。所以结合.asList方法,你有:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
这会将.asList()方法 创建的 List 传递给 ArrayList,因此现在您可以根据需要动态地操作它。使用Collections.addAll()方法 在 Java 中将 Array 转换为 ArrayList 的另一种方法是使用此方法。它将 Array 的内容传递给 ArrayList。此方法的通用语法是:

Collections.addAll(c, T);
其中c是目的地,T是传递的内容。因此,对于我们的示例,语法如下所示:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
这会将 Array bolts 的全部内容传递给新的 ArrayList。将 ArrayList 转换为数组 有时您可能需要将 ArrayList 转换为 Java 中的数组。如果这样做,ArrayList 有一个方法.toArray(a),其中 a 是目的地。因此,对于我们的示例,语法为:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
当您像这样在 Java 中将列表更改为数组时,您正在创建一个深拷贝。也就是说,所有对 Array 的引用都不同于对 ArrayList 的引用。所以你可以在不改变存储在ArrayList中的数据的情况下操作Array中的数据。当你需要测试数据时,将 java 列表转换为数组很有用。

结论

数组对于快速访问和快速操作较小的数据集非常有用,但无法更改其大小意味着它们很快就会失去长期使用的效率。ArrayList 为您提供了灵活性以及根据需要插入和删除节点的能力。学习如何将 Java Array 转换为 List 将提高程序的整体效率并改善它们的运行时间。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION