Java 8 Java8流为空元素提供默认值

Java 8 Java8流为空元素提供默认值,java-8,java-stream,Java 8,Java Stream,我有一个如下所示的对象列表,希望为小时数为空的元素提供默认值 [爪哇,10小时] [python,2小时] [节点,1小时] [c,null]您可以在map语句中使用if,以实现所需: List<String[]> newList = list.stream() .map(e-> { String newVal = e[1]; if(newVal == null){ newVal = "defaultValue";

我有一个如下所示的对象列表,希望为小时数为空的元素提供默认值

[爪哇,10小时]
[python,2小时]
[节点,1小时]

[c,null]您可以在map语句中使用
if
,以实现所需:

List<String[]> newList = list.stream()
    .map(e-> {
        String newVal = e[1];
        if(newVal == null){
            newVal = "defaultValue";
        }
        return new String[]{e[0], newVal};
    })
    .collect(Collectors.toList());

当你可以使用好的ol'循环时,强迫自己使用流并不总是一个好主意。

流是必需的,for循环不够吗?请展示你迄今为止所做的尝试。使用
map
以避免出现错误effect@Dummy使用map可能会改变列表中元素的顺序。从原始问题,这一命令显然不是一个好消息problem@Dummy无需做出不必要的假设。:)那你为什么一开始就认为订单很重要呢?恭喜你,你演的是你自己
java => 10 housrs
python => default value
List<String[]> newList = list.stream()
    .map(e-> {
        String newVal = e[1];
        if(newVal == null){
            newVal = "defaultValue";
        }
        return new String[]{e[0], newVal};
    })
    .collect(Collectors.toList());
for(String[] e : list){
    if(e[1] == null){
         e[1] = "defaultValue";
    }
}