java stream操作案例

1、从List<Staff>筛选符合条件的List<String>:

List<Staff> staffListtemp=Lists.newArrayList();
List<String> staffIdList=staffListtemp.stream().filter(staff->deptIdSet.contains(staff.getDeptId())).map(staffId->staffId.getStaffId()).collect(Collectors.toList());

2、从List<PositionRealtime>转为Map<String,PositionRealtime>:

List<PositionRealtime> prList
Map<String,PositionRealtime> prMap=prList.stream().collect(Collectors.toMap(PositionRealtime::getStaffId, PositionRealtime->PositionRealtime));

3、从Set<String>转为拼接后的String:

Set<String> inPostStaffIds = Sets.newHashSet();
String inPostIds = inPostStaffIds.stream().reduce((a,b)->a+","+b).get();

4、从List<StaffGpsTimeDTO>通过StaffId作为分组条件分组为Map<String,List<StaffGpsTimeDTO>>对象:

List<StaffGpsTimeDTO> positionHistoryTimeList = positionHistoryManageDao.getPositionHistoryTimeList(filterPropertyMap2);
for(StaffGpsTimeDTO staffGpsTimeDTO : positionHistoryTimeList){
    List<Date> list = Lists.newArrayList();
    if(gpsMap.get(staffGpsTimeDTO.getStaffId()) != null){
        list = gpsMap.get(staffGpsTimeDTO.getStaffId());
    }
    list.add(staffGpsTimeDTO.getGpsTime());
    gpsMap.put(staffGpsTimeDTO.getStaffId(), list);
}
Map<string,List<>> aaa=positionHistoryTimeList.stream().collect(Collectors.groupingBy(StaffGpsTimeDTO::getStaffId,Collectors.mapping(StaffGpsTimeDTO::getGpsTime, Collectors.toList())));

原文地址:http://blog.51cto.com/481814/2163215

时间: 2024-10-27 08:51:06

java stream操作案例的相关文章

java stream的常用例子

一.标题 java stream的常用例子 二.描述 stream在当前互联网技术社区传播的已经很广泛了,且有阿里11.11用stream很好的完成数据处理案例,为此迎着互联网技术风口细细地学习一下stream,说不定能让代码飘起来 三.常用的例子 以下内容均使用该代码作为前提: 1 public class AppTest { 2 3 public static void main(String[] args){ 4 List<StreamDemo> list = new ArrayList

HighCharts操作案例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

Java Stream 使用详解

Stream是 Java 8新增加的类,用来补充集合类. Stream代表数据流,流中的数据元素的数量可能是有限的,也可能是无限的. Stream和其它集合类的区别在于:其它集合类主要关注与有限数量的数据的访问和有效管理(增删改),而Stream并没有提供访问和管理元素的方式,而是通过声明数据源的方式,利用可计算的操作在数据源上执行,当然BaseStream.iterator()和BaseStream.spliterator()操作提供了遍历元素的方法. Java Stream提供了提供了串行和

使用jcabi-ssh在java中操作ssh命令

使用jcabi-ssh在java中操作ssh命令 如果我们想在java代码中远程连接ssh,并且执行一些shell命令,可以使用jcabi-ssh这个小框架,纯java编写,很方便.这里介绍一下如何使用. 依赖 java框架,依赖的包肯定是jar文件了,jar包地址http://repo1.maven.org/maven2/com/jcabi/jcabi-ssh/1.1/jcabi-ssh-1.1.jar,如果使用maven管理,可以添加依赖: <dependency> <groupId

HighCharts操作案例-柱状图

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + requ

HighCharts操作案例-3D可拖拽柱状图

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

java stream 原理

java stream 原理 需求 从"Apple" "Bug" "ABC" "Dog"中选出以A开头的名字,然后从中选出最长的一个,并输出其长度 1. 最直白的实现 缺点 迭代次数过多 频繁产生中间结果,性能无法接受 2. 平常写法 int longest = 0; for(String str : strings){ if(str.startsWith("A")){// 1. filter(), 保留以

Java Stream &amp; Method Reference

目录 Java Stream & Method Reference 1. Stream流 1.1 概述 1.2 流式思想的概述 1.3 获取流 1.4 常用方法 1.5 练习:集合元素处理(传统方式) 1.6 练习:集合元素处理(Stream流方式) 2. 方法引用 2.1 基本介绍 2.2 通过对象名引用[成员方法] 2.3 通过类名称引用[静态方法] 2.4 通过super引用父类的普通成员方法 2.5 通过this引用本类的普通成员方法 2.6 类的构造器(构造方法)引用 2.7 数组的构

Java Stream函数式编程第三篇:管道流结果处理

一.Java Stream管道数据处理操作 在本号之前写过的文章中,曾经给大家介绍过 Java Stream管道流是用于简化集合类元素处理的java API.在使用的过程中分为三个阶段.在开始本文之前,我觉得仍然需要给一些新朋友介绍一下这三个阶段,如图: 第一阶段(图中蓝色):将集合.数组.或行文本文件转换为java Stream管道流 第二阶段(图中虚线部分):管道流式数据处理操作,处理管道中的每一个元素.上一个管道中的输出元素作为下一个管道的输入元素. 第三阶段(图中绿色):管道流结果处理操