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
。它还创建一个具有基元类型专用方法的IntStream
int
在此特定情况下,该方法用于将Integer
(包装对象)转换为基元类型的int
。使用IntStream
可以创建实际的int[]
而不是Integer[]
它归结为理解基元类型及其包装器之间的区别。尤其是自动装箱。
https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html