// Java8函数式编程示例—(Predicate、Stream、Optional)   https://blog.csdn.net/weixin_41950473/article/details/84930562

//        Set<Integer> nums = new HashSet<>();
// for (int i = 0; i < 100; i++) {
// Integer num = (int) (100 * Math.random());
// nums.add(num);
// System.out.println(num.intValue());
// }
//
// // predicate语义
// Predicate<Integer> p1 = x -> x.intValue() > 40 && x.intValue() < 50;
// Predicate<Integer> p2 = x -> x.intValue() > 30 && x.intValue() < 80;
//
// List<Integer> res = nums.stream().filter(p1.and(p2)).collect(Collectors.toList());// 流式操作
//
// Collections.sort(res, Comparator.comparing(Integer::intValue));// 排序,Comparator List<Integer> res = Arrays.asList(6,9,12); // Optional
List<Integer> value =
Optional.ofNullable(res)
.map((param) -> {
return param.stream()
.map(x -> x / 3)
.collect(Collectors.toList());
})
.orElseThrow(IllegalArgumentException::new); System.out.println("--->"+value);
//两个List通过相同的属性值进行个别属性赋值  // https://www.jianshu.com/p/446eb7d3a261
//把user登录日志表中的 最后登录time 更新set到 该user表中
public static void main(String[] args) { List<UserVo> userList = new ArrayList<>();//这里要非空
List<UserLoginLogVo> userLoginLogVos = new ArrayList<>();//这里要非空 业务代码不贴出来
if(CollectionUtils.isNotEmpty(userLoginLogVos)) {
userList = userList
.stream()
.map(user -> userLoginLogVos.stream()
.filter(log -> user.getUserId().equals(log.getUserId()))
.findFirst() //返回集合流的第一个对象
.map(log -> {
user.setLastLoginTime(log.getLastLoginTime());
return user;
})
.orElse(user))
.collect(Collectors.toList());
}
}
@Data
static class UserVo{
private String userId;//用户全局ID
private Date lastLoginTime;//最后登录时间
}
@Data
static class UserLoginLogVo {
private String userId;//用户全局ID
private Date lastLoginTime;//最后登录时间
}

最新文章

  1. 7.让网站支持http和https的访问方式
  2. linux 查找文件和搜索文件
  3. [Unity3d]向量的过度方法以及拖尾效果
  4. c# 第一个实例 通哥
  5. WinForm动态添加控件及其事件(转)
  6. Linux初学 - 安装及网络配置
  7. 关于JSP的C标签之forEach循环分隔符
  8. Knockout : 实现复杂的web聊天窗体
  9. Silverlight之OOB模式下的一些事
  10. CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
  11. web引用和服务引用
  12. .net的自定义JS控件,运用了 面向对象的思想 封装 了 控件(.net自定义控件开发的第一天)
  13. Android Gradle manifestPlaceholders 占位符详解
  14. MVC 常用扩展点:过滤器、模型绑定等
  15. NLP&amp;深度学习:近期趋势概述
  16. 04 Django REST Framework 认证、权限和限制
  17. Configure Monit on AWS CentOS7 to guard Squid proxy
  18. Jenkins 安装简记录
  19. CF418D Big Problems for Organizers
  20. STL之Map和multimap容器

热门文章

  1. winform 异步更新ui
  2. kvm:双网卡做bond+桥接
  3. std::string 和 CString问题
  4. (66)Nginx+lua+Redis开发
  5. navicat_premium_x64最新版安装说明
  6. Comparable接口与Comparator接口的比较————总结
  7. jquery.fileupload-image-editor.js
  8. mysql修改数据表某列的配置
  9. 一、基础篇--1.1Java基础-final, finally, finalize 的区别
  10. SVN更新报错:Checksum mismatch for ……