java移除数组中null元素_java - 如何从int数组(Java)中删除null元素? - SO中文参考 - www.soinside.com...

我们知道,原始类型在java中不是对象,因为在stream()类中有重载的Arraysmethod。假设这里只考虑int。如果我们通过int[]然后stream(int[] array)被调用并返回IntStream对象。如果你去查看IntStream类,那么你将只找到一个toArraymethod,它不接受任何参数。

所以,我们不能做toArray(int[]::new)。

int[] in1 = {0, 0, 2, 0, 3};

int[] in2 = Arrays.stream(in1).filter(x -> x != 0).toArray();

但是对于任何Reference类型数组,我们都可以转换为特定类型。例如

String[] str2 = {"a","b",null,"c"};

String[] strArr = Arrays.stream(str2).filter(i -> !=null).toArray(String[]::new);

for (String string : strArr) {

System.out.println(string);

}

在Reference类型的情况下,从stream类调用通用Arrays方法并生成Stream,现在Stream接口有两个重载的toArray()。如果我们使用

toArray()然后屈服Object[],在这种情况下,我们需要种姓。

toArray(IntFunction generator)然后给我们A[],其中A是任何参考类型。

见下面的例子

package test;

import java.util.Arrays;

public class EliminateZeroFromIntArray {

public static void main(String[] args) {

int[] in1 = {0, 0, 2, 0, 3};

int[] in2 = Arrays.stream(in1).filter(x -> x != 0).toArray();

for (int i : in2) {

System.out.println(i);

}

String[] str = {"a","b",null,"c"};

Object[] array = Arrays.stream(str).filter(i -> i !=null).toArray();

for (Object object : array) {

System.out.println((String)object);

}

String[] str2 = {"a","b",null,"c"};

String[] strArr = Arrays.stream(str2).filter(i -> i !=null).toArray(String[]::new);

for (String string : strArr) {

System.out.println(string);

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值