我有一个用于存储用户尝试次数的类。
public class UserAttempt() {
private long userId;
private long attemptNumber;
//getters and setters
}
现在,我有以下这些对象的集合:
List<UserAttempt> userAttemptList = new ArrayList<UserAttempt>();
一个用户可能具有大量的邀请。 因此,我想使用Java 8流仅获取每个用户的最大尝试次数的集合。
答案 0 :(得分:2)
您可以将travis encrypt <<password>> --com --debug
收集器与自定义合并功能一起使用,以将值收集到toMap()
中,其中键是id,尝试是值:
Map
如果您只想尝试,可以调用Map<Long, UserAttempt> userIdToMaxAttempt = userAttemptList.stream()
.collect(Collectors.toMap(
UserAttempt::getUserId,
Function.identity(),
(left, right) -> left.getAttemptNumber() > right.getAttemptNumber() ? left : right
));
方法:
Map#values()