为什么要投放Stream <e>?

时间:2017-05-01 06:55:10

标签: java collections lambda java-stream

我在fillna(method='pad')中添加了一些数字,然后尝试使用流获取HashSet

int[]

工作正常。我的问题是为什么我需要将 HashSet set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); int[] ii = set.stream().mapToInt(i -> ((Integer)i).intValue()).toArray(); 投射到i才能使其发挥作用?如果我不进行投射,Integer会保持i 1}}。

根据docsObject应该返回stream(),其中Stream<E>在这种情况下为E。这就是为什么我没有预料到演员。

1 个答案:

答案 0 :(得分:0)

你有HashSet作为RawType,这就是为什么会出现这个问题。 尝试做到这一点:

HashSet<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
set.add(3);
int[] ii = set.stream().mapToInt(i -> (i).intValue()).toArray();