import java.util。;导入java.util.stream。;
班级游乐场{
public static void main(String[] args)
{
// Creating a character array
char arr[] = { '1', '2', '3', '4', '5' };
// --------- Using Stream.of() ---------
// Will work efficiently
// to convert int array into Stream
Stream<char[]> stream = Stream.of(arr);
Stream<Integer> s = stream.flatMap((item)->new String(item).chars().mapToObj(a->(char)a));
// Displaying elements in Stream
s.forEach(str -> System.out.print(str + " "));
}
}
我正在尝试使用flatMap()将char []转换为字符流,但是出现以下错误
./ Playground / Playground.java:14:错误:不兼容的类型:推断变量R具有不兼容的范围流s = stream.flatMap((item)-> new String(item).chars()。mapToObj(a->(char)a));^等式约束:整数下界:U,字符其中R,T,U是类型变量:R扩展了在flatMap(Function>)方法中声明的ObjectT扩展接口Stream中声明的对象U扩展在方法mapToObj(IntFunction)中声明的Object1个错误
需要帮助来了解错误以及如何完成此任务。
Arrays.stream()
用于任何数组。*Stream.of()
,其中*为Int,Double等。>Stream.of()
用于任何对象数组。上述所有以下工作。
Integer[] IntegerArray = {1,2,3,4};
Arrays.stream(IntegerArray).forEach(System.out::println);
Stream.of(IntegerArray).forEach(System.out::println);
int[] intArray = {1,2,3,4};
Arrays.stream(intArray).forEach(System.out::println);
IntStream.of(intArray).forEach(System.out::println);
double[] doubleArray = {1.2,3.3,4.5,6.7};
Arrays.stream(doubleArray).forEach(System.out::println);
DoubleStream.of(doubleArray).forEach(System.out::println);
String[] stringArray = {"a","b","c","d"};
Stream.of(stringArray).forEach(System.out::println);