java - 打印出过滤流对象的一些字段
问题描述
假设有一个 Fox 类,它有名字、颜色和年龄。假设我有一个狐狸列表,我想打印出那些狐狸的名字,它们的颜色是绿色的。我想使用流来做到这一点。
领域:
- 名称:私有字符串
- 颜色:私有字符串
- 年龄:私人整数
我编写了以下代码来进行过滤和系统输出:
foxes.stream().filter(fox -> fox.getColor().equals("green"))
.forEach(fox -> System.out::println (fox.getName()));
但是,我的代码中存在一些语法问题。
问题是什么?我该如何整理?
解决方案
您不能将方法引用与 lambdas 结合使用,只需使用一个:
foxes.stream()
.filter(fox -> fox.getColor().equals("green"))
.forEach(fox -> System.out.println(fox.getName()));
或其他:
foxes.stream()
.filter(fox -> fox.getColor().equals("green"))
.map(Fox::getName) // required in order to use method reference in the following terminal operation
.forEach(System.out::println);
推荐阅读
- python - 写入文本文件时出现奇怪的空字符
- python - 为什么 ALTER TABLE xy ALTER COLUMN ab TYPE 类型在 PostgreSQL 中不起作用?
- excel - 加快我的宏以在 Excel 中复制粘贴多达 900 个单元格
- c++ - 在 C 中是否有针对此问题的替代解决方案?
- android - 如果在 Kotlin 中包含超过 10 个单词,如何更改 textview 高度(代码)
- windows - 将文件夹和内容复制到 Windows 10 上的不同文件夹
- mongodb - 按周对 mongodb 进行排序,然后对数据求和并取平均值
- html - 视角不好的角垫卡
- angular - Angular + Nginx + Kubernetes - 部署子目录问题
- spring - thymeleaf spring boot url 映射问题导致 url 中的单词重复