【发布时间】:2018-06-05 13:42:55
【问题描述】:
我想使用流 API 迭代 Map,但是,如果 null 出现在 EntrySet 的元素中,我想做一些自定义处理。
由于我需要自定义处理空值,我不能只使用Stream::filter
使用我当前的功能 (MyClass::f),
HashMap<String,String> map =new HashMap<>();
map.entrySet().stream().map(MyClass::f);
我收到了NullPointerException。
【问题讨论】:
-
您可以将带有 if 语句或三元条件运算符的功能接口传递给您希望将逻辑放入的任何 Stream 操作(
map,forEach,...)。跨度> -
HashMap
map =new HashMap(); map .entrySet() .stream() .map(//lambda);这段代码会抛出 NPE ,我想处理 null 并避免 NPE -
那与
lambda有关。例如,map.entrySet().stream().map(x -> {return x;});可以正常工作。 -
@shmosel 我在想 ConcurrentHashMap。 NM - 评论已删除。
-
@midor ,你是对的,它是 lamdba
标签: java java-8 java-stream