哪种 toArray 转换模式最适合使用?



我有以下一段代码,IntelliJ建议我应该更改:

String[] normalizedNames = rawToNormalized.values().stream().toArray(String[]::new);

String[] normalizedAliases = rawToNormalized.values().toArray(new String[0]);

Aleksey Shipilёv的帖子(https://shipilev.net/blog/2016/arrays-wisdom-ancients/)建议:

toArray(new T[0])看起来更快,更安全,合同更干净,因此现在应该是默认选择。

有人可以详细说明toArray(new String[0])toArray(String[]::new)的确切区别,通过从流中使用toArray而不Collector.

toArray(new String[0])仍然可以在流中使用吗?它仍然是一个性能更高/更好的选择吗?

我会遵循 intelliJ 作为一个简单的原因:

为什么要将列表进行流式传输以创建数组。另一方面,您可以直接将该列表转换为数组。

有人可以详细说明toArray(new String[0])与toArray(String[

]::new)的确切区别,以及toArray(new String[0])是否仍然是性能更高/更好的选择?

intelliJ警告背后的想法是关于使用流befor toArray,而不是使用toArray的方式。

相关内容

  • 没有找到相关文章

最新更新