如何将Stream <int []>转换为Stream <integer>

时间:2019-01-10 23:53:59

标签: java java-8 java-stream

是否可以将Stream<int[]>转换为Stream<Integer>

int[] arr2 = new int[] { 54, 432, 53, 21, 43 };
// Below gives me Stream<int[]> 

Stream.of(arr2);  // I want to convert it to Stream<Integer>

5 个答案:

答案 0 :(得分:3)

您可以使用Arrays.stream()

Arrays.stream(arr2).boxed();  // will return Stream<Integer>

IntStream.of

IntStream.of(arr2).boxed();   // will return Stream<Integer>

<< strong>整数> boxed()

  

返回一个包含此流元素的流,每个元素都装在整数中。

     

这是一个中间操作。

答案 1 :(得分:2)

对流进行包装:

Arrays.stream(arr2).boxed();

答案 2 :(得分:1)

您可以使用此:

Cannot open assembly '/Users/graemetmcdonough/Projects/help/help/bin/DesktopGL/Any CPU/Debug/help.Desktop.exe': No such file or directory.

答案 3 :(得分:1)

您可以通过{p> 3从io.vavr创建流

Stream.ofAll(arr2)

,但是要使用整数流,应使用IntStream。您可以像这样从数组创建IntStream:

Arrays.stream(arr2)

答案 4 :(得分:0)

在这种情况下有一个问题。

让我们举个例子。如果您有一个原始数组,并尝试直接创建一个流,则将有一个这样的数组对象流:

// Arrays of primitives 
int[] nums = {1, 2, 3, 4, 5}; 
Stream.of(nums); // One element int[] | Stream<int[]> 

要解决此问题,您可以使用:

Arrays.stream(nums).count();  // Five Elements 
IntStream.of(nums).count(); // Five Elements