gpt4 book ai didi

java - Arrays.stream(array) 与 Arrays.asList(array).stream()

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:02 30 4
gpt4 key购买 nike

this问题已经回答了两个表达式是相等的,但在这种情况下它们会产生不同的结果。对于给定的 int[] 分数,为什么会这样:

Arrays.stream(scores)
.forEach(System.out::println);

...但这不是:

Arrays.asList(scores).stream()
.forEach(System.out::println);

据我所知,.stream() 可以在任何集合上调用,列表肯定是。第二个代码片段只返回一个包含整个数组而不是元素的流。

最佳答案

您看到的行为并非特定于 Stream秒。 Arrays.asList(scores)返回 List<int[]>当你传递给它一个 int[] ,因为泛型类型参数不能被原始类型替换。因此,当您调用 asList(T... a) , 编译器使用 int[]代替 T .

如果你改变scoresInteger[] ,您将获得预期的输出(即 Arrays.asList(scores) 将返回 List<Integer> )。

关于java - Arrays.stream(array) 与 Arrays.asList(array).stream(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37252468/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com