java lambda if_使用的if-else在Java的8 lambda表达式语句

您可以通过条件,然后重新映射组:

public void booleanGrouping() throws Exception {

List strings = new ArrayList<>();

strings.add("ala");

strings.add("ela");

strings.add("jan");

strings.stream()

.collect(

Collectors.groupingBy(s -> s.endsWith("a")) // using function Obj -> Bool not predicate

).entrySet()

.stream()

.collect(

Collectors.toMap(

e -> e.getKey() ? "Present" : "Past",

e -> e.getValue().stream().collect(Collectors.joining(""))

)

);

}

的条件第一流组,你应该使用equivalentCourse.getNcourse() != null秒重映射集合从值到字符串。你可以介绍:

enum PresentPast{

Present, Past

PresentPast is(boolean v){

return v ? Present : Past

}

}

,改变e -> e.getKey() ? "Present" : "Past"来枚举基础的解决方案。

编辑:

解决方案else if:

public Map booleanGrouping() throws Exception {

List strings = new ArrayList<>();

strings.add("ala");

strings.add("ela");

strings.add("jan");

// our ifs:

/*

if(!string.endsWith("n")){

}else if(string.startsWith("e")){}

final map should contains two elements

endsWithN -> ["jan"]

startsWithE -> ["ela"]

NOT_MATCH -> ["ala"]

*/

return strings.stream()

.collect(

Collectors.groupingBy(Classifier::apply) // using function Obj -> Bool not predicate

).entrySet()

.stream()

.collect(

Collectors.toMap(

e -> e.getKey(),

e -> e.getValue().stream().collect(Collectors.joining(""))

)

);

}

enum Classifier implements Predicate {

ENDS_WITH_N {

@Override

public boolean test(String s) {

return s.endsWith("n");

}

},

STARTS_WITH_E {

@Override

public boolean test(String s) {

return s.startsWith("e");

}

}, NOT_MATCH {

@Override

public boolean test(String s) {

return false;

}

};

public static Classifier apply(String s) {

return Arrays.stream(Classifier.values())

.filter(c -> c.test(s))

.findFirst().orElse(NOT_MATCH);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值