存在Java 8 lambda表达式
首先,我需要检查数据是否存在于列表中,然后在Java8流上获取else set default或空值 目前我正在使用下面的代码,但没有存在Java 8 lambda表达式,java,lambda,Java,Lambda,首先,我需要检查数据是否存在于列表中,然后在Java8流上获取else set default或空值 目前我正在使用下面的代码,但没有isPresent,但我不知道如何在java8中使用isPresent 我正在尝试下面不完美的东西: String isScheme = (this.mapProgramApproaches.stream().findFirst().isPresent())? this.mapProgramApproaches.stream().findFirst().get()
isPresent
,但我不知道如何在java8中使用isPresent
我正在尝试下面不完美的东西:
String isScheme = (this.mapProgramApproaches.stream().findFirst().isPresent())? this.mapProgramApproaches.stream().findFirst().get().getIsScheme().toString() : "0";
当MapProgramApproach
时,设置此选项。不要使用isPresent()
(运行流
管道两次是没有意义的)
您可以使用映射
将可选
的值映射到所需的字符串
,然后
当可选值不存在时,使用orElse()
返回默认值:
String isScheme = this.mapProgramApproaches.stream()
.findFirst()
.map(o->o.getIsScheme().toString())
.orElse("0");
也许你正在寻找这样的东西:
String isScheme = this.mapProgramApproaches.stream()
.findFirst()
.map(p -> p.getIsScheme().toString())
.orElse("0");
List<String> mapProgramApproaches = new ArrayList<>();
mapProgramApproaches.stream()
.filter(this::isScheme)
.findFirst()
.ifPresent(this::doYourCode)
.orElse(defaultValue);
我不确定您这样做的上下文,但我想您应该检查某个对象是否是scheme,然后用它做一些事情。在这种情况下,我建议如下实施:
String isScheme = this.mapProgramApproaches.stream()
.findFirst()
.map(p -> p.getIsScheme().toString())
.orElse("0");
List<String> mapProgramApproaches = new ArrayList<>();
mapProgramApproaches.stream()
.filter(this::isScheme)
.findFirst()
.ifPresent(this::doYourCode)
.orElse(defaultValue);
List MapProgramApproach=new ArrayList();
MapProgramApproach.stream()
.filter(此::isScheme)
.findFirst()
.ifPresent(此::doYourCode)
.orElse(默认值);
这将使你的代码更干净。并将有助于避免附加条件