迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中将数组转换为 ArrayList 的 3 种方法

作者:迹忆客 最近更新:2023/02/04 浏览次数:

在 Java 中,大家是否遇到过想要快速将数组转换为 ArrayList 或将 ArrayList 转换为数组的情况? 我遇到过很多这样的情况,这促使我写下这些关于在 Java 中将数组转换为 ArrayList 以及将 ArrayList 转换为数组的快速 Java 技巧。 数组和 ArrayList 都很常见,每个 Java 开发人员都熟悉这一点。 前者用于存储对象和原始类型,而后者只能容纳对象。 数组是标准 Java 基本数据结构的一部分,而 ArrayList 是 Java 集合框架的一部分。

大多数时候,我们将数据以对象的形式存储在 ArrayArrayList 中,或者有时我们发现它们中的任何一个都适合处理,我们想在 Java 中从一个数组转换为 ArrayListArrayList 为数组。

这个 Java 中的数组到 ArrayList 的简短教程将说明可以多快地相互转换数据。 因此,当大家遇到这种情况时,请记住这些提示,你会度过难关的。 如果比较数组与 ArrayList,唯一的显着区别是一个是固定大小而另一个不是。

与此相关的是,从 Java 5 开始,ArrayList 类支持 Java 中的泛型,这意味着我们可以将 StringArrayList 转换为 String 数组或将 IntegerArrayList 转换为 Integer 数组。 泛型提供类型安全并在运行时移除强制转换。


如何在 Java 中将 Array 转换为 ArrayList?

在本篇文章的第一部分中,我们将看到如何将 Array 转换为 ArrayList,而在第二部分中,我们将看到相反的情况,即从 ArrayList 到 Array。 这两者之间的主要区别在于,一旦声明,我们就不能更改前者的大小,而后者是动态的,只要其容量超过负载因子指定的阈值,它就会自行调整大小。

所以你可以说前者是固定大小的,而你后者是可调整大小的。 java.util.Arrays 类充当数组到 ArrayList 之间的桥梁,用于从数组到 ArrayListArrayList 到数组的转换。 如果大家想了解有关 Array 的更多信息,可以查看如何检测 Array 是否包含重复项以及如何按升序对 Java 中的 Array 元素进行排序

数组与ArrayList互相转化

1. 使用 Arrays.asList() 方法

看下面的例子,我们有一个包含不同种类资产类别的数组,例如 股票、黄金和外汇等,我们想转换成一个 ArrayList。 这是从数组转换为 ArrayList 的最简单方法。

String[] asset = {"equity", "stocks", "gold", 
 "foreign exchange","fixed income", "futures", "options"}; 
List<String> assetList = Arrays.asList(asset); 

在使用 Arrays.asList() 方法进行数组到数组列表的转换时需要注意以下几点:

  1. 此方法返回底层数组的列表视图。
  2. 此方法返回的列表将是固定大小的。
  3. 最需要注意的一点是,当我们将一个元素更改为此列表时,原始数组中对应的元素也会更改。
  4. 还有一点很重要,因为List是固定大小的,你不能往里面添加元素。 如果你尝试你会得到例外。
  5. 据我所知,这是将数组转换为数组列表的最有效方法,因为它不会复制底层数组的内容来创建列表。
  6. 从 Java 5 或 JDK 1.5 开始,此方法支持泛型,因此您可以从数组生成类型安全的 ArrayList

Arrays.asList() 方法相关的最重要的一点是它返回一个固定大小的列表而不是只读列表,尽管我们不能在此列表上 add()remove() 元素,我们仍然可以使用 set方法更改现有的元素。 如果我们使用它来创建只读列表,请使用 Collections.unmodifiableList 方法在 Java 中创建只读集合。

2. Array 到 ArrayList 使用 Collections.addAll 方法

这个将数组转换为 ArrayList 的示例不如前面的方法有效,但它更灵活。

List<String> assetList = new ArrayList();
String[] asset = {"equity", "stocks", "gold", "foriegn exchange", 
"fixed income", "futures", "options"}; 

Collections.addAll(assetList, asset);

这种数组到 ArrayList 转换方法的重点是:

  1. 它不如 Arrays.asList() 快,但更灵活。
  2. 该方法实际上是将底层数组的内容复制到提供的 ArrayList 中。
  3. 由于正在创建原始数组的副本,因此可以添加、修改和删除任何元素而不影响原始元素。
  4. 如果你想提供单独的元素,你可以通过将它们单独指定为逗号分隔来实现。 哪种方法可以非常方便地将更多元素插入现有列表,例如我们可以将更多 asset 类添加到现有 assetlist 中,如下所示?
Collections.addAll(assetList, "Equity Derivatives", "Eqity Index Arbitrage" , "Mutual Fund");

3.使用Collection的 addAll 方法将 ArrayList 转 Array 的例子

这是将数组转换为 ArrayList 的另一种好方法。 我们实际上是在使用 Collection 接口的 addAll() 方法将内容从一个列表复制到另一个列表。 由于 Arrays.asList() 返回的 List 是固定大小的,因此用处不大,我们可以通过这种方式将其转换为适当的 ArrayList

Arraylist newAssetList = new Arraylist();
newAssetList.addAll(Arrays.asList(asset));

这些是在 Java 中将 Array 转换为 ArrayList 的三种方法。 顺便说一句,我们还可以创建 ArrayList 数组,因为列表可以容纳任何类型的对象。

使用 Spring 框架将 数组 转换为 ArrayList

如果大家使用的是 spring 框架,还有另一种将数组转换为 ArrayList 的简单方法。 spring 框架在 CollectionUtils 类中提供了几个实用方法,其中之一是 CollectionUtils.arrayToList() ,它可以将数组转换为 List,如下面的使用 spring 框架将数组转换为 List 的示例所示。

值得注意的是,虽然 arrayToList() 方法返回的列表与 Arrays.asList() 返回的列表一样是不可修改的,但我们不能在该列表中 add()remove() 元素。 Spring API 还提供了几种实用方法,用于将 ArrayList 转换为 Java 中以逗号分隔的字符串。

String [] currency = {"SGD", "USD", "INR", "GBP", "AUD", "SGD"};
System.out.println("Size of array: " + currency.length);
List<String> currencyList = CollectionUtils.arrayToList(currency);
  
//currencyList.add("JPY"); //Exception in thread "main" 
java.lang.UnsupportedOperationException
//currencyList.remove("GBP");//Exception in thread "main" 
java.lang.UnsupportedOperationException

System.out.println("Size of List: " + currencyList.size());
System.out.println(currencyList);

如何在 Java 中将 ArrayList 转换为 Array?

现在,我们想要从 Arraylist 转换为 Array,而不是将数组转换为 ArrayList,这很有趣。 刚才我们正在考虑将数组转换为 Arraylist,现在我们需要返回到前一个。 无论如何,它比我们可能再次想到的要简单,我们有 java.util.Arrays 类作为我们的救援。 此类充当 ArrayList 与数组之间的桥梁。

Java中ArrayList转Array的例子

在这个 ArrayList 到数组的例子中,我们将我们的 assetTradingList 转换成 String 数组。

ArrayList assetTradingList = new ArrayList(); 

assetTradingList.add("Stocks trading");
assetTradingList.add("futures and option trading");
assetTradingList.add("electronic trading");
assetTradingList.add("forex trading");
assetTradingList.add("gold trading");
assetTradingList.add("fixed income bond trading");
String [] assetTradingArray = new String[assetTradingList.size()];
assetTradingList.toArray(assetTradingArray);

执行完最后一行后,我们的 assetTradingList 将被转换为一个 String 数组。 如果您想了解更多有关如何在 Java 中高效使用 ArrayList 的信息,请查看 Java ArrayList 各种操作示例

清楚地将数组转换为 ArrayList 并返回 ArrayList 和数组可以在编写代码时节省大量时间。 如果我们想使用一些默认数据初始化 ArrayList 或者想将一些元素添加到现有的 ArrayList 中,它也很有用。 这些将数组转换为 ArrayList 的示例绝不是完整的,欢迎大家分享自己将 ArrayList 转换为数组的方法,反之亦然。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中获取文件大小

发布时间:2023/05/01 浏览次数:139 分类:Java

Java 提供了不同的方法来获取文件的字节大小。 本教程演示了在 Java 中获取文件大小的不同方法。使用 Java IO 的文件类获取文件大小 Java IO 包的 File 类提供了以字节为单位获取文件大小的功能。

Java 中的文件分隔符

发布时间:2023/05/01 浏览次数:108 分类:Java

本篇文章介绍了 Java 中的文件分隔符。Java 中的文件分隔符 文件分隔符是用来分隔目录的字符; 例如,Unix 使用 /,Windows 使用 \ 作为文件分隔符。

Java 中的文件过滤器

发布时间:2023/05/01 浏览次数:193 分类:Java

本篇文章介绍如何在 Java 中使用 FileFilter。FileFilter 用于过滤具有特定扩展名的文件。 Java内置包IO和Apache Commons IO为FileFilter提供了类和接口来进行文件过滤操作。

Java 获取 ISO 8601 格式的当前时间戳

发布时间:2023/05/01 浏览次数:132 分类:Java

本篇文章介绍了 ISO 8601 日期格式、其重要性及其在 Java 中的使用。 它还列出了一些优点来强调为什么应该使用 ISO 格式来表示日期。

在 Java 中获取数组的子集

发布时间:2023/05/01 浏览次数:142 分类:Java

本篇文章介绍了几种在 Java 中获取数组子集的方法。使用 Arrays.copyOf() 方法获取数组的子集 使用 Arrays.copyOfRange() 方法获取数组的子集

用 Java 填充二维数组

发布时间:2023/05/01 浏览次数:110 分类:Java

二维数组是基于表结构的,即行和列,填充二维数组不能通过简单的添加到数组操作来完成。 本篇文章介绍如何在 Java 中填充二维数组。

Java 中的自然排序

发布时间:2023/05/01 浏览次数:132 分类:Java

Java 中最常用的顺序是自然顺序。 本文将展示如何使用 naturalOrder() 函数对数组进行排序。

计算 Java 数组中的重复元素

发布时间:2023/05/01 浏览次数:202 分类:Java

本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。

Java 中 List 和 Arraylist 的区别

发布时间:2023/05/01 浏览次数:90 分类:Java

表示为单个单元的一组单个对象称为集合。 在 Java 中,Collection 是一个具有多个已定义接口和类的框架,用于将一组对象表示为一个单元。 它允许我们操纵

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便