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());
相关推荐
Coding_Doggy1 分钟前
链盾shieldchain | 项目管理、DID操作、DID密钥更新消息定时提醒
java·服务器·前端
j***63087 分钟前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
闲人编程10 分钟前
Python对象模型:一切都是对象的设计哲学
开发语言·python·模型·对象·codecapsule·下划线
列逍13 分钟前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
二川bro15 分钟前
Python大语言模型调优:LLM微调完整实践指南
开发语言·python·语言模型
4***V20220 分钟前
PHP在微服务通信中的消息队列
开发语言·微服务·php
亿坊电商25 分钟前
PHP框架 vs 原生开发:移动应用后端开发实战对比!
开发语言·php
S***q19241 分钟前
Kotlin内联函数优化
android·开发语言·kotlin
JIngJaneIL1 小时前
汽车租赁|汽车管理|基于Java+vue的汽车租赁系统(源码+数据库+文档)
java·vue.js·spring boot·汽车·论文·毕设·汽车租赁
在路上看风景1 小时前
2.3 C#装箱和拆箱
开发语言·c#