·  阅读

最近对 Lambda 表达式有些兴趣,然后项目中有处理文件中数据空值和空字符串的操作,就想起来使用 Lambda 表达式中的方法进行去除,当然也可以使用常规循环再删除的操作。

一. Lambda 去除数组中的空字符串(""), 使用 Lambda 表达式仅仅一行代码就可以完成。下面是分别输出数组 String[] 和列表 List<>.

* 例:源数组 String [] arr = { "2" , "3" , "" , "34" , "11" , "" , "" , "6" }; * 去除 String[] 数组中的空字符串("") * @param arr 源数组 * @return 操作后的新数组 String[] public String [] removeArraysEmpty ( String [] arr ) { return Arrays . stream (arr). filter (s -> ! "" . equals (s)). toArray ( String []:: new ); * 去除 String[] 数组中的空字符串("") * @param arr 源数组 * @return 操作后的新列表 List<> 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" }; * 去除 String[] 数组中的空值(null) * @param arr 源数组 * @return 操作后的新数组 String[] public String [] removeArraysEmpty ( String [] arr ) { return Arrays . stream (arr). filter ( Objects ::nonNull). toArray ( String []:: new ); * 去除 String[] 数组中的空值(null) * @param arr 源数组 * @return 操作后的新列表 List<> public List < String > removeArraysEmpty ( String [] arr ) { return Arrays . stream (arr). filter ( Objects ::nonNull). collect ( Collectors . toList ());