Я столкнулся с кодом в проекте моей компании, который выглядит следующим образом
void pAccount(List<Account> accounts) {
accounts.stream()
.filter(o->getKey(o) != null)
.collect(Collectors.groupingBy(this::getKey))
.forEach(this::pAccounts);
}
private Key getKey(Account account) {
return keyRepository.getKeyById(account.getId());
}
private void pAccounts(Key key , List<Account> accounts) {
//Some Code
}
Во время отладки мы пришли к выводу, что pAccount(List<Account> accounts)
вызывает pAccounts(Key key , List<Account> accounts
.
У меня есть пытался найти похожие примеры в Интернете, но не нашел ничего, что соответствовало бы этому поведению.
Я хочу знать, является ли это какой-то функциональностью в потоках, которая позволяет нам делать это, или это что-то еще.