java11新特性之集合转换为数组的方法

 更新时间:2024年06月06日 11:52:48   作者:morris131  
Java11引入了一种将带有泛型的集合转换为带有泛型的数组的简单方法,本文通过实例代码介绍java11新特性之集合转换为数组的操作方法,感兴趣的朋友跟随小编一起看看吧

Java11引入了一种将带有泛型的集合转换为带有泛型的数组的简单方法。

Java11之前

使用toArray方法

对于List,你可以直接使用toArray方法,但需要注意,toArray方法默认返回一个Object[]数组,你可能需要将其强制转换为正确的类型。

List<String> list = Arrays.asList("a", "b", "c");
Object[] strObjectArray = list.toArray();

这样转出来的数组是Object类型,在使用的时候还需要进行强制类型转换。

在Java 11及之前,推荐使用这种方式来避免不必要的数组复制:

String[] array = list.toArray(new String[0]);

在Java 11之前,你可能会看到这样的代码:

String[] array = list.toArray(new String[list.size()]);

这种方式在Java 11之前也是有效的,但可能导致不必要的数组复制

但从Java 9开始,推荐使用new Type[0]作为toArray方法的参数,因为它可以避免在集合大小已知时的不必要数组创建和复制。

使用流(Streams)API

虽然这不是最直接的方法,但你可以使用流来转换集合为数组。这通常在需要更复杂的转换时更有用。

List<String> list = Arrays.asList("a", "b", "c");  
String[] array = list.stream().toArray(String[]::new);

在这个例子中,我们使用stream().toArray()方法,并传递一个构造函数引用(String[]::new)来指定数组的类型。这将返回一个正确类型的数组。

Java11

Java 11中,toArray方法可以传入IntFunction参数。这种方式允许你更灵活地创建数组。

toArray方法的原型如下:
java.util.Collection#toArray(java.util.function.IntFunction<T[]>)

default <T> T[] toArray(IntFunction<T[]> generator) {
    return toArray(generator.apply(0));
}

toArray方法的使用如下:

List<String> list = Arrays.asList("a", "b", "c");
String[] array = list.toArray(String[]::new);

这种方式使用方法引用String[]::new,简洁且高效。

到此这篇关于java11新特性之集合转换为数组的文章就介绍到这了,更多相关java11集合转换为数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis使用接口映射的方法步骤

    MyBatis使用接口映射的方法步骤

    映射器是MyBatis中最核心的组件之一,本文主要介绍了MyBatis使用接口映射的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • DoytoQuery中关于N+1查询问题解决方案详解

    DoytoQuery中关于N+1查询问题解决方案详解

    这篇文章主要为大家介绍了DoytoQuery中关于N+1查询问题解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • java 压缩和解压缩Zip、Jar、Gzip文件实例代码

    java 压缩和解压缩Zip、Jar、Gzip文件实例代码

    本文主要介绍java压缩和解压缩Zip、Jar、Gzip文件的知识,这里整理了相关资料,并附示例代码有兴趣的小伙伴可以参考下
    2016-09-09
  • 浅析idea 添加项目依赖的两种方式

    浅析idea 添加项目依赖的两种方式

    这篇文章主要介绍了idea 添加项目依赖的两种方式,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • java ssm框架实现分页功能的示例代码(oracle)

    java ssm框架实现分页功能的示例代码(oracle)

    这篇文章主要介绍了java ssm框架实现分页功能的示例代码(oracle),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • springboot 多环境配置 yml文件版的实现方法

    springboot 多环境配置 yml文件版的实现方法

    这篇文章主要介绍了springboot 多环境配置 yml文件版的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Java中IO和NIO的区别详细解析

    Java中IO和NIO的区别详细解析

    这篇文章主要介绍了Java中IO和NIO的区别详细解析,IO和NIO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO快不少,需要的朋友可以参考下
    2023-11-11
  • Java实现将word转换为html的方法示例【doc与docx格式】

    Java实现将word转换为html的方法示例【doc与docx格式】

    这篇文章主要介绍了Java实现将word转换为html的方法,结合实例形式分析了java针对doc与docx格式文件的相关转换操作技巧,需要的朋友可以参考下
    2019-03-03
  • Java数据结构之并查集的实现

    Java数据结构之并查集的实现

    并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行如下操作。本文将通过Java实现并查集,感兴趣的小伙伴可以了解一下
    2022-01-01
  • JSON Web Token(JWT)原理入门教程详解

    JSON Web Token(JWT)原理入门教程详解

    这篇文章主要为大家介绍了JSON Web Token(JWT)原理入门教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04

最新评论