相关文章推荐
怕老婆的仙人球  ·  My monitor is going ...·  9 月前    · 
怕老婆的仙人球  ·  CodeIgniter4 Email ...·  9 月前    · 
怕老婆的仙人球  ·  libusb-win32 - ...·  9 月前    · 
怕老婆的仙人球  ·  Sysinternals Desktops ...·  10 月前    · 
怕老婆的仙人球  ·  使用 HttpClient ...·  10 月前    · 
挂过科的企鹅  ·  Java ...·  50 分钟前    · 
鼻子大的甘蔗  ·  epplus ...·  1小时前    · 
稳重的警车  ·  jquery beforeunload方法 ...·  2 小时前    · 

这篇文章将讨论我们如何在 Java 中过滤流中的空值。

许多对流的操作会抛出一个 NullPointerException 如果其中存在任何空值。有许多选项可以处理流中的空值:

1.过滤空值

我们知道 Stream.filter() 返回由当前流中与给定谓词匹配的元素组成的流。我们可以使用以下 lambda 表达式从流中过滤空值:

我们还可以使用静态过滤掉流中的空值 nonNull() 提供的方法 java.util.Objects .如果提供的引用不为空,则返回 true;否则,它返回 false。有两种调用方式:

1. 使用 lambda 表达式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java . util . Arrays ;
import java . util . Objects ;
class Main
{
// 用于从 Java 8 及更高版本的流中过滤空值的程序
public static void main ( String [ ] args )
{
String [ ] cities = { "NYC" , "Washington D.C." , null , "Mexico" ,
"Fargo" , null , "Beijing" , "New Delhi" , "Tokyo" } ;
Arrays . stream ( cities )
. filter ( Objects :: nonNull )
. forEach ( System . out :: println ) ;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java . util . Arrays ;
class Main
{
// 在 Java 8 及更高版本中替换流中的空值的程序
public static void main ( String [ ] args )
{
String [ ] cities = { "NYC" , "Washington D.C." , null , "Mexico" ,
"Fargo" , null , "Beijing" , "New Delhi" , "Tokyo" } ;
Arrays . stream ( cities )
. map ( city -> ( city == null ? "" : city ) )
. forEach ( System . out :: println ) ;
}
}
 
推荐文章