.stream().mapToInt(i -> i) 在 Java 中是什么意思?


class Solution {
public int[] decompressRLElist(int[] nums) {
List<Integer>ans = new ArrayList<>();
for (int i = 0; i < nums.length; i += 2)
for (int j = 0; j < nums[i]; ++j) 
ans.add(nums[i + 1]);
return ans.stream().mapToInt(i -> i).toArray();`

我不明白最后一行。

通常mapToInt将流中的每个项目映射到int。它还创建一个具有基元类型专用方法的IntStreamint

在此特定情况下,该方法用于将Integer(包装对象)转换为基元类型的int。使用IntStream可以创建实际的int[]而不是Integer[]

它归结为理解基元类型及其包装器之间的区别。尤其是自动装箱。

https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html

最新更新