最近对 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
());