Java 8和Lambdas的新手。这就是我所拥有的:
一个简单的凭证类:
public interface Credentials {
boolean isPasswordEnabled();
String getCreatedDate();
}
返回凭据列表的简单服务:
List<Credentials> credentials = credentialsService.getCredentials();
我需要获取最近创建的密码,该密码也已启用。这是我到目前为止所做的,但这只涉及日期部分。如何集成isPasswordEnabled检查?
Credentials latestCredentials = Collections.max(credentials, Comparator.comparing(c -> c.getCreatedDate()));
答案 0 :(得分:1)
使用此:
credentials.stream()
.filter(Credentials::isPasswordEnabled)
.max(Comparator.comparing(Credentials::getCreatedDate))
答案 1 :(得分:1)
使用过滤器,然后找到max:
Optional
请注意,由于.get()
返回credentials
,您需要调用NoSuchElementException
以获取最大值。
如果没有已启用的元素(或.get()
为空),您将获得.orElseThrow(SomeException::new)
。如果您想为此案例抛出特定的例外情况,而不是拨打import pandas as pd
df = pd.read_excel(inputfile)
来电话'An error occurred: Length mismatch: Expected axis has 17 elements, new values have 12 elements'
。