Map<String, Map<Fee, Map<Fee, List<Fee>>>> map = InputFee.stream()
.collect(groupingBy(Fee::getClientId, groupingBy(Fee::getSecurityId, groupingBy(Fee::getTransactionDate)))
);
// need to group by ClientId , securityID and getTransactionDate but different Transaction TypeAdd a code snippet to your website: www.paste.org