两种 Collect 操作获取最大 id 菜单项的区别是什么?
技术百科
心靈之曲
发布时间:2024-11-06
浏览: 次 两种 collect 操作写法的区别
对于给定的 menulist,我们想要获取其中 id最大的菜单项。下面提供了两种使用 collectors 进行此操作的写法:
第一种写法:
menulist.stream().collect(collectors.maxby(comparator.comparing(menu::getid))).get();
第二种写法:
menulist.stream().collect(collectors.collectingandthen(collectors.maxby(comparator.comparing(menu::getid)), optional::get));
区别:
这两种写法在功能上等同,都能获得 id最大的菜单项。但是,它们在实现细节上有以下区别:
-
流处理
流程:- 第一写法使用 collectors.maxby 对流进行排序并获取最大值,然后使用 .get() 方法解包 optional。
- 第二写法先使用 collectors.maxby 找到最大值,然后使用 collectingandthen 对结果应用 optional::get 方法解包。
-
设计初衷:
- collectingandthen 通常用于对流处理结果进行进一步操作。例如,我们可以使用 collectingandthen(tolist(), list -> {...}) 将流收集为列表并执行额外的操作。
- 第一写法使用 collect 进行归约操作,这脱离了 collect 的设计初衷。
因此,建议您使用以下更简洁高效的写法:
menuList.stream().max(Comparator.comparing(Menu::getId)).get();
# 上有
# 都能
# 可以使用
# 菜单项
# 两种
# 第二种
# 第一种
# 这两种
# 区别
# 建议您使用
# comparing
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- php修改数据怎么改富文本_update更新htm
- Windows10电脑怎么设置虚拟光驱_Win10
- Win11怎么关闭自动调节亮度 Win11禁用内容
- 如何使用Golang table-driven f
- Win11怎么更改鼠标指针_Windows 11自
- Win11怎么设置快速访问_Windows11文件
- Django密码修改后会话失效的解决方案
- Mac的“预览”如何合并多个PDF_Mac文件处理
- Win11更新后变慢怎么办_Win11系统更新后卡
- Win10 BitLocker加密教程 Win10
- LINUX的SELinux是什么_详解LINUX强
- Win10系统字体模糊怎么办_Windows10高
- 如何在Golang中使用log包输出不同级别日志_
- php怎么下载安装并配置环境变量_命令行调用PHP
- c++中如何进行二进制文件读写_c++ read与
- PHP的Workerman对架构扩展有啥帮助_应用
- 如何在Golang中使用replace替换模块_指
- Python项目维护经验_长期演进说明【指导】
- Win10如何卸载自带Edge_Win10彻底卸载
- windows系统找不到无线网络怎么办_windo
- Windows驱动无法加载错误解决方法_驱动签名验
- Win11时间怎么同步到原子钟 Win11高精度时
- Python配置文件操作教程_JSONINIYAM
- Windows10系统怎么查看运行时间_Win10
- Go 中 := 短变量声明的类型推导机制详解
- Win11怎么关闭内容自适应亮度_Windows1
- C#如何使用XPathNavigator高效查询X
- Win10怎么卸载金山毒霸_Win10彻底卸载金山
- Windows10无法识别USB设备描述符请求失败
- Windows10电脑怎么设置电源按钮_Win10
- Windows的便笺功能如何使用?(桌面备忘技巧)
- Windows11怎么用“记事本”自动换行与编码
- Win11系统更新后黑屏怎么办 Win11更新黑屏
- Windows10如何更改鼠标灵敏度_Win10鼠
- 如何使用Golang指针与接口结合_实现方法调用和
- Win11怎么关闭自动调节亮度_Windows11
- Win10怎样卸载TeamViewer_Win10
- C++如何使用std::async进行异步编程?(
- php订单日志怎么在swoole写_php协程sw
- Win11怎么调整屏幕亮度_Windows 11调
- 如何使用Golang recover捕获panic
- c++中如何对数组进行排序_c++数组排序算法汇总
- php本地部署后session无法保存_sessi
- 如何用::实现工具类方法调用_php静态工具类设计
- MAC怎么解压RAR格式文件_MAC第三方解压工具
- 如何在 Go 应用中实现自动错误恢复与进程重启机制
- c++ reinterpret_cast怎么用 c
- Python技术债务管理_长期维护解析【教程】
- 如何在JavaScript中动态拼接PHP的bas
- Win11怎么解压RAR文件 Win11自带解压功

流程:
QQ客服