[Java 11] Java 11 新特性 - 集合新的默认方法 toArray()

yufei       6 年, 3 月 前       735

「 Java11 」 Java 11 新特性 - 字符串新方法 我们介绍了 Java 11 中字符串的新方法,本章节我们就来看看 Java 11 中为集合新添加的默认方法 toArray()

JDK11 早期访问 发布说明 中提到, JDK 11Early Access Build 20 版本中在 Collection 接口上添加了一个 默认方法 toArray(IntFunction)

关于默认方法,看这篇文章 https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html 非常有意思的实现方式

toArray() 方法的功能说明是 「允许在运行时将集合的元素转换到新创建的所需类型的数组中」,很拗口对不对,其实就一句话 「可以将集合的元素转换为数组」

这个新的默认方法 Collection.toArray(IntFunction) 的行为类似于 流接口 上的 Stream.toArray(IntFunction) 方法

原型

default <T> T[] toArray(IntFunction<T[]> generator)

范例

我们使用一个示例来演示下 toArray(),我们首先创建一个 Set ,然后调用 Set.toArray() 方法

jshell> Set<String> names = Set.of("苹果", "香蕉", "菠萝", "梨");
names ==> [香蕉, 菠萝, 苹果, ]

jshell> Arrays.toString(names.toArray(String[]::new))
$20 ==> "[香蕉, 菠萝, 苹果, 梨]"

如果不传递 String[]::new 类型构造参数,其实就会调用已经存在的 Collection.toArray(T[]) toArray()

jshell> Arrays.toString(names.toArray())
$21 ==> "[香蕉, 菠萝, 苹果, 梨]"
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.