java - "String[]::new"是什么意思?

标签 java java-8 java-stream method-reference

我正在学习如何使用流,但我遇到了这种方法的问题。

public static String[] inArray(String[] array1, String[] array2) {
   return Arrays.stream(array1)
  .filter(str -> Arrays.stream(array2).anyMatch(s -> s.contains(str)))
  .distinct().sorted().toArray(**String[]::new**);
}

我对 String[]::new 很困惑,你能给我一个提示吗?

最佳答案

String[]::new意味着 size -> new String[size] .

Stream#toArray(IntFunction<A[]> generator) 准备好生成一个数组,它调用 generator并传递( generator.apply )内部集合的大小以获得一个集合来填充它。

关于java - "String[]::new"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310226/

相关文章:

Java 8 Streams - 按父属性分组

java - 从 CheckStyle 中的方法计数中排除 getter 和 setter

java - Google Play - onReceivedSslError

java - 整数线性规划 Java : Multiple Open Source and Commercial tools are available. 使用哪一个?

java - 如果某些东西已被弃用,我仍然可以使用它吗?

datetime - ZonedDateTime 中的 XMLGregorianCalendar 格式日期

JAVAFX:有什么办法可以获得已经开放的舞台吗?

java - 如何在 Java 8 中将 Map<String, List<String>> 转换为 Map<String, String>

java - 如何在java 8中过滤内部 map

java - 使用 Java 流简化列表,其中每个元素本身都是映射列表