Stream是中常Java 8添加的一个API,结合Lambda表达式,场景可以提高我们对对集合处理的编码效率。在日常工作中,中常我们经常会遇到List转Map的场景情况,在Stream出来之前,中常我们一般都是场景遍历放进map中。
这里,中常我们假设有个User对象。场景
@Getter
@Setter
public class User
{
private String id;
private String name;
private Integer age;
}
Map<String, User> userMap = users.stream().collect(Collectors.groupingBy(User::getId));
1 .按年龄升序排。
List<User> sortUsers= users.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());
2.按年龄降序排。
List<User> sortUsers= users.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
除了上面的一些函数外,还有功能强大的函数,如:limit、max、reduce等。
在我们使用Stream之后,调试是一个问题。
在IDEA 2018后,会自带Java Stream Debugger这个插件,有助于我们更直观的了解Stream的执行过程。插件有了,我们该如何使用呢?
2.debug模式启动后,在debug窗口中点击Trace Current Stream Chain
我们可以点击切换上面每一步的tab,查看其执行的一个大致过程,我们也可以切换到Flat Mode模式
这里只是列举了几个常用的API,针对Stream的能力远比上面列举几个简单的功能要强大。
责任编辑:姜华 来源: 今日头条 Java8ListMap(责任编辑:综合)
世界模型立大功!这造假的20多种自动驾驶场景数据太逼真了......
中国医疗集团(08225.HK)发布公告:预计年度税后纯利大幅增加不少于100%
前10个月安徽省重点项目完成投资15725亿 开工3235个