这些 Java 8 官方挖的坑,你踩过几个?( 五 )


如果在开发的时候就考虑到了key可能重复 , 你需要在这样定义convert2MapByStream方法 , 声明在遇到重复key时是使用新值还是原有值:
    private static void convert2MapByStream(List<User> list) {        Map<String, String> map = list.stream().collect(Collectors.toMap(User::getName, User::getValue, (oldVal, newVal) -> newVal));        System.out.println(map);    }关于Stream的坑其实还是蛮多的 , 比如寻找list中的某个对象 , 可以使用findAny().get(),你以为是找到就返回找不到就就返回null?依然天真 , 找不到会抛出异常的 , 需要使用额外的orElse方法 。
6、纸上得来终觉浅 , 绝知此事要躬行所谓JDK官方的坑 , 基本上都是因为我们对技术点了解的不够深入 , 望文生义 , 以为是怎样怎样的 , 而实际上我们的自以为是让我们掉进了一个又一个坑里 。
面对着这些坑 , 我流下了学艺不精的眼泪!但也有些坑 , 确实发生的莫名其妙 , 比如吞噬异常 , 没有理解JDK为什么这么设计 。还有些坑 , 误导性确实太强了 , 比如日期计算、list操作等 。最后只能说一句:
纸上得来终觉浅 , 绝知此事要躬行!编码不易 , 且行且珍惜!




推荐阅读