最近对 Lambda 表达式有些兴趣,然后项目中有处理文件中数据空值和空字符串的操作,就想起来使用 Lambda 表达式中的方法进行去除,当然也可以使用常规循环再删除的操作。
一. Lambda 去除数组中的空字符串(""), 使用 Lambda 表达式仅仅一行代码就可以完成。下面是分别输出数组 String[] 和列表 List<>.
String[] arr = {"2", "3", "", "34", "11", "", "", "6"};
public String[] removeArraysEmpty(String[] arr) {
return Arrays.stream(arr).filter(s -> !"".equals(s)).toArray(String[]::new);
}
public List<String> removeArraysEmpty(String[] arr) {
return Arrays.stream(arr).filter(s -> !"".equals(s)).collect(Collectors.toList());
}
控制台输出结果都是:[2, 3, 34, 11, 6]
二. Lambda 去除数组中的空值(null),下面是分别输出数组 String[] 和列表 List<>.
String[] arr = {"2", "3", null, "34", "11", null, null, "6"};
public String[] removeArraysEmpty(String[] arr) {
return Arrays.stream(arr).filter(Objects::nonNull).toArray(String[]::new);
}
public List<String> removeArraysEmpty(String[] arr) {
return Arrays.stream(arr).filter(Objects::nonNull).collect(Collectors.toList());
}
控制台输出结果都是:[2, 3, 34, 11, 6]