我有这样的代码
int[] array = {1, -1, 2, 3, -4};
Integer[] out = Arrays
.stream(array)
.filter(elem -> elem >= 0) // remove negatives
.boxed()
.collect(Collectors.toList())
.toArray(new Integer[array.length]);
Run Code Online (Sandbox Code Playgroud)
但是过滤操作将数组中的负元素保留为nulls.为什么不删除它们?
您的out数组与数组的长度相同array.
这样做:
int[] out = Arrays
.stream(array)
.filter(elem -> elem >= 0) // remove negatives
.toArray();
Run Code Online (Sandbox Code Playgroud)
或者这样做:
Integer[] out = Arrays
.stream(array)
.filter(elem -> elem >= 0) // remove negatives
.boxed()
.toArray(Integer[]::new);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |