Java之Stream的实用语法

1. 转Map

java 复制代码
List<Book> books = bookMapper.list();
Map<String, Book> bookMap = books.stream().collect(Collectors.toMap(Book::getBookId, book -> book));

结果结构

json 复制代码
{
    "1": {
        "bookId": "1",
        "bookTitle": "书1"
    },
    "2": {
        "bookId": "2",
        "bookTitle": "书2"
    },
}

2. 字符串拼接

java 复制代码
List<Book> books = bookMapper.list();
String bookNames = books.stream().map(Book::getBookTitle).collect(Collectors.joining(","));

结果结构

json 复制代码
"书1,书2"

3. 类型转换

java 复制代码
List<Book> books = bookMapper.list();
List<Book2> book2s = books.stream().map(book -> {
    Book2 book2 = new Book2();
    BeanUtils.copyProperties(book, book2);
}).collect(Collectors.toList());

4. 条件判断(存在任意匹配的)

java 复制代码
List<Book> books = bookMapper.list();
if (books.stream().anyMatch(book -> !book.getBookTitle.contains("书"))) {
    throw new RuntimeException("存在非正常书名称");
} else {
    return books;
}

5. 条件判断(无匹配的)

java 复制代码
List<Book> books = bookMapper.list();
if (books.stream().noneMatch(book -> "1".equals(book.getType()))) {
    throw new RuntimeException("无指定类型的书籍");
}

6. 修改数据项

java 复制代码
List<Book> books = bookMapper.list();
return books.stream().peek(book -> book.setBookTitle(null)).collect(Collectors.toList());

7. 过滤

java 复制代码
List<Book> books = bookMapper.list();
return books.stream().filter(book -> "1".equals(book.getType())).collect(Collectors.toList());

8. 排序

java 复制代码
List<Book> books = bookMapper.list();
return books.stream().sorted(Comparator.comparing(Book::getCreateTime)).collect(Collectors.toList());
相关推荐
伍一512 分钟前
芋道框架下的进销存升级(三):Yudao-ERP2异步导出/导入Excel的设计与实现
java·excel·异步导出excel
kaikaile19952 分钟前
雷达仿真中时域与频域脉冲压缩的对比 MATLAB实现
开发语言·matlab
胡闹542 分钟前
【EasyExcel】字段赋值错乱问题
java·开发语言
断剑zou天涯3 分钟前
【算法笔记】AC自动机
java·笔记·算法
张工摆Bug3 分钟前
《别再写满屏的if-else了!Spring Boot + 策略模式实战优化》
java
独自归家的兔5 分钟前
基于GUI-PLUS 搭配 Java Robot 实现智能桌面操控
java·开发语言·人工智能
用户3721574261356 分钟前
Python 实现 PDF 文档压缩:完整指南
java
ew452186 分钟前
【JAVA】实现word的DOCX/DOC文档内容替换、套打、支持表格内容替换。
java·开发语言·word
贺今宵7 分钟前
装Maven并在idea上配置
java·maven·intellij-idea
企微自动化7 分钟前
企业微信外部群自动化系统的异常处理机制设计
开发语言·python