gpt4 book ai didi

当对象列表中另一个字段最小时,Java 8 获取对象的一个​​字段

转载 作者:行者123 更新时间:2023-12-02 11:21:10 25 4
gpt4 key购买 nike

我有对象列表objList,其中有两个字段ageidagelongidString。我想迭代列表并获取列表中年龄最小的对象的 id。我可以使用传统的 for 循环来完成此操作,但我确信 java 8 中会有一个紧凑的解决方案。

如果我执行 objList.stream() 然后检查该流上的 map 函数,我只有 mapToIntmapToLongmapToDouble。通过这些,我得到了最短年龄,但我需要具有最短年龄的对象的 ID。

保证列表不会为空并且至少有一个对象。

最佳答案

假设列表中的元素为 MyObject 类型,并提供访问器 getAge()getId(),管道将看起来像这样:

String id = objList.stream()
.min(Comparator.comparingLong(MyObject::getAge))
.map(MyObject::getId)
.orElseThrow(IllegalArgumentException::new);

如果您的假设无效,并且 objList 为空,则会抛出 IllegalArgumentException,但这“永远不会发生”,对吧?或者,您可以返回 default valuegenerate one.

关于当对象列表中另一个字段最小时,Java 8 获取对象的一个​​字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com