gpt4 book ai didi

java - 如何检索 List 中符合条件的最大元素?

转载 作者:行者123 更新时间:2023-11-30 02:22:51 26 4
gpt4 key购买 nike

Java 8 和 lambda 的新手。这是我所拥有的:

一个简单的 Credentials 类:

public interface Credentials {

boolean isPasswordEnabled();

String getCreatedDate();
}

返回凭据列表的简单服务:

List<Credentials> credentials =  credentialsService.getCredentials();

我需要获取最近创建且已启用的密码。这是我到目前为止所拥有的,但只处理日期部分。如何集成 isPasswordEnabled 检查?

Credentials latestCredentials = Collections.max(credentials, Comparator.comparing(c -> c.getCreatedDate()));

最佳答案

使用过滤器,然后找到最大值:

Credentials latestCredentials = credentials.stream()
.filter(Credentials::isPasswordEnabled)
.max(Comparator.comparing(Credentials::getCreatedDate))
.get();

请注意,由于 max() 返回 Optional,因此您需要调用 .get() 来获取最大值。

如果没有启用的元素(或credentials 为空),您将收到NoSuchElementException。如果您想在这种情况下引发特定异常,请调用 .orElseThrow(SomeException::new),而不是调用 .get()

关于java - 如何检索 List 中符合条件的最大元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367698/

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